javascript - Making a JQuery button act as a dropdown -


take jquery ui button sample reference: http://jqueryui.com/demos/button/#splitbutton

now, how implement dropdown when click small button? caution transformation .button() actual button messes offset coordenates.

to sum it, need opinions on how correctly implement dropdown on click of jquery button integrates current theme.

thanks! alex

i made , looks this

i made , looks picture above.
blogged here , i'm posting code bellow.
please refer blog post deeper explanation.

css

<style type="text/css">      .itemactionbuttons{}     .itemactionbuttons .saveextraoptions     {         display: none; list-style-type: none; padding: 5px; margin: 0; border: 1px solid #dcdcdc; background-color: #fff; z-index: 999; position: absolute;     }     .itemactionbuttons .saveextraoptions li     {         padding: 5px 3px 5px 3px; margin: 0; width: 150px; border: 1px solid #fff;     }     .itemactionbuttons .saveextraoptions li:hover     {         cursor: pointer;         background-color: #dcdcdc;     }     .itemactionbuttons .saveextraoptions li     {         text-transform: none;     } </style> 

html

<div class="itemactionbuttons">     <div class="buttonset" style="float: right;">         <input id="btndelete" type="button" value="delete" class="button" onclick="itemactionbuttons.ondeleteclick.apply(this)" />         <input id="btncancel" type="button" value="cancel" class="button"onclick="itemactionbuttons.oncancelclick.apply(this)" />     </div>       <div id="divsavebutton" class="buttonset" style="float: right;">         <input id="btnsave" type="button" value="save" class="button" onclick="itemactionbuttons.onsaveclick.apply(this)" />         <input id="btnsaveextra" type="button" class="button" value="+" onclick="itemactionbuttons.onsaveextraclick.apply(this)" />          <ul class="saveextraoptions ui-corner-bottom" id="btnsaveextraoptions">             <li onclick="$('#btnsaveextraoptions').toggle(); itemactionbuttons.saveandnewclick.apply(this)">save , new</li>             <li onclick="$('#btnsaveextraoptions').toggle(); itemactionbuttons.saveandcopyclick.apply(this)">save , copy</li>         </ul>     </div> </div> 

javascript

<script type="text/javascript">      $(document).delegate('#btnsaveextra', 'mouseleave', function () { settimeout(function(){ if (!itemactionbuttons.ishovermenu) { $('#btnsaveextraoptions').hide(); }}, 100, 1) });     $(document).delegate('#btnsaveextraoptions', 'mouseenter', function () { itemactionbuttons.ishovermenu = true; });     $(document).delegate('#btnsaveextraoptions', 'mouseleave', function () { $('#btnsaveextraoptions').hide(); itemactionbuttons.ishovermenu = false; });      var $ishoverextraoptionsflag = 0;     $(document).ready(function () {         $(".button").button();         $(".buttonset").buttonset();         $('#btnsaveextra').button({ icons: { primary: "ui-icon-plusthick" } });         $('#btnsaveextraoptions li').addclass('ui-corner-all ui-widget');         $('#btnsaveextraoptions li').hover(             function () { $(this).addclass('ui-state-default'); },             function () { $(this).removeclass('ui-state-default'); }         );         $('#btnsaveextraoptions li').mousedown(function () { $(this).addclass('ui-state-active'); });         $('#btnsaveextraoptions li').mouseup(function () { $(this).removeclass('ui-state-active'); });     });      var itemactionbuttons = {         ishovermenu: false,          allowdelete: function (value) { value ? $("#btndelete").show() : $("#btndelete").hide() },         allowcancel: function (value) { value ? $("#btncancel").show() : $("#btncancel").hide(); },         allowsave: function (value) { value ? $("#btnsave").show() : $("#btnsave").hide() },         allowsaveextra: function (value) { value ? $("#btnsaveextra").show() : $("#btnsaveextra").hide() },          ondeleteclick: function () { },         oncancelclick: function () { },         onsaveclick: function () { },         onsaveextraclick: function () {             $('#btnsaveextraoptions').toggle();              var btnleft = $('#divsavebutton').offset().left;             var btntop = $('#divsavebutton').offset().top + $('#divsavebutton').outerheight(); // +$('#divsavebutton').css('padding');             var btnwidth = $('#divsavebutton').outerwidth();             $('#btnsaveextraoptions').css('left', btnleft).css('top', btntop);         },         saveandnewclick: function () { },         saveandcopyclick: function () { }     }  </script> 

Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -