javascript – 使JQuery按钮充当下拉列表

前端之家收集整理的这篇文章主要介绍了javascript – 使JQuery按钮充当下拉列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以此 JQuery UI Button示例作为参考:
http://jqueryui.com/demos/button/#splitbutton

现在,单击小按钮时如何实现该下拉列表?
我的注意事项主要是转换.button()对实际的按钮进行操作,这个按钮会使偏移量变得混乱.

总而言之,我需要就如何正确实现与当前主题集成的JQuery按钮单击下拉列表的意见.

谢谢!
亚历克斯

解决方法

我终于做到了,看起来像上面的图片.
我在博客上写了 here,我也发布了所有的代码.
有关更深入的解释,请参阅博客文章.

CSS

  1. <style type="text/css">
  2.  
  3. .ItemActionButtons{}
  4. .ItemActionButtons .SaveExtraOptions
  5. {
  6. display: none; list-style-type: none; padding: 5px; margin: 0; border: 1px solid #DCDCDC; background-color: #fff; z-index: 999; position: absolute;
  7. }
  8. .ItemActionButtons .SaveExtraOptions li
  9. {
  10. padding: 5px 3px 5px 3px; margin: 0; width: 150px; border: 1px solid #fff;
  11. }
  12. .ItemActionButtons .SaveExtraOptions li:hover
  13. {
  14. cursor: pointer;
  15. background-color: #DCDCDC;
  16. }
  17. .ItemActionButtons .SaveExtraOptions li a
  18. {
  19. text-transform: none;
  20. }
  21. </style>

HTML

  1. <div class="ItemActionButtons">
  2. <div class="buttonset" style="float: right;">
  3. <input id="btnDelete" type="button" value="Delete" class="button" onclick="ItemActionButtons.onDeleteClick.apply(this)" />
  4. <input id="btnCancel" type="button" value="Cancel" class="button"onclick="ItemActionButtons.onCancelClick.apply(this)" />
  5. </div>
  6. <div id="divSaveButton" class="buttonset" style="float: right;">
  7. <input id="btnSave" type="button" value="Save" class="button" onclick="ItemActionButtons.onSaveClick.apply(this)" />
  8. <input id="btnSaveExtra" type="button" class="button" value="+" onclick="ItemActionButtons.onSaveExtraClick.apply(this)" />
  9.  
  10. <ul class="SaveExtraOptions ui-corner-bottom" id="btnSaveExtraOptions">
  11. <li onclick="$('#btnSaveExtraOptions').toggle(); ItemActionButtons.SaveAndNewClick.apply(this)">Save and New</li>
  12. <li onclick="$('#btnSaveExtraOptions').toggle(); ItemActionButtons.SaveAndCopyClick.apply(this)">Save and Copy</li>
  13. </ul>
  14. </div>
  15. </div>

JavaScript的

  1. <script type="text/javascript">
  2.  
  3. $(document).delegate('#btnSaveExtra','mouseleave',function () { setTimeout(function(){ if (!ItemActionButtons.isHoverMenu) { $('#btnSaveExtraOptions').hide(); }},100,1) });
  4. $(document).delegate('#btnSaveExtraOptions','mouseenter',function () { ItemActionButtons.isHoverMenu = true; });
  5. $(document).delegate('#btnSaveExtraOptions',function () { $('#btnSaveExtraOptions').hide(); ItemActionButtons.isHoverMenu = false; });
  6.  
  7. var $IsHoverExtraOptionsFlag = 0;
  8. $(document).ready(function () {
  9. $(".button").button();
  10. $(".buttonset").buttonset();
  11. $('#btnSaveExtra').button({ icons: { primary: "ui-icon-plusthick" } });
  12. $('#btnSaveExtraOptions li').addClass('ui-corner-all ui-widget');
  13. $('#btnSaveExtraOptions li').hover(
  14. function () { $(this).addClass('ui-state-default'); },function () { $(this).removeClass('ui-state-default'); }
  15. );
  16. $('#btnSaveExtraOptions li').mousedown(function () { $(this).addClass('ui-state-active'); });
  17. $('#btnSaveExtraOptions li').mouseup(function () { $(this).removeClass('ui-state-active'); });
  18. });
  19.  
  20. var ItemActionButtons = {
  21. 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 () {
  22. $('#btnSaveExtraOptions').toggle();
  23.  
  24. var btnLeft = $('#divSaveButton').offset().left;
  25. var btnTop = $('#divSaveButton').offset().top + $('#divSaveButton').outerHeight(); // +$('#divSaveButton').css('padding');
  26. var btnWidth = $('#divSaveButton').outerWidth();
  27. $('#btnSaveExtraOptions').css('left',btnLeft).css('top',btnTop);
  28. },SaveAndNewClick: function () { },SaveAndCopyClick: function () { }
  29. }
  30.  
  31. </script>

猜你在找的jQuery相关文章