在jQuery事件处理程序中调用自定义函数

时间:2015-11-30 13:33:01

标签: javascript jquery

这是我想要调用的函数(它确实有效,我测试了它):

$(document).on("mousedown", ".tab-links li:nth-child(2)", function(event) {
    if (event.which == 3) {
      enableCategoryPopup();
    }
  });

这就是我想要的地方:

alert("x")

我一旦右键单击指定的元素就应该调用我的自定义函数,但它不会。 当我拨打enableCategoryPopup()而不是var buttons = require('sdk/ui/button/action'); var tabs = require("sdk/tabs"); var button = buttons.ActionButton({ id: "mozilla-link", label: "Visit Mozilla", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onClick: handleClick }); function handleClick(state) { tabs.open("http://www.mozilla.org/"); } 时,只有我的自定义功能无法执行。

我做错了什么?如何调用自定义函数?

1 个答案:

答案 0 :(得分:3)

尝试在enableCategoryPopup函数中处理事件

function enableCategoryPopup(event) {
    if (event.which == 3) {
        event.stopPropagation();
        var buttonOffset = $(this).offset();
        $('.category-popup').css({
          top: buttonOffset.top + 10,
          left: buttonOffset.left +10
        });
        $('.category-popup').show(100);
    }
  }

  $(document).on("mousedown", ".tab-links li:nth-child(2)", enableCategoryPopup);