定义并触发自定义事件

时间:2017-03-02 09:13:09

标签: javascript jquery

我需要在DatatTble的单元格上调用自定义事件。所以,我有以下方法:

(function ($) {
  $.fn.longClick = function (callback) {
    //event
  };
})(jQuery);

要进行绑定,作为测试,我会执行以下操作:

$("h1").longClick(function () {
  console.log('triggered');
});

我需要替换点击事件:

$('#dtStatus').on('click', 'tbody td:not(:first-child)', function (e) {
  console.log('triggered');
});

我的长期活动。

$('#dtStatus').on('longClick', 'tbody td:not(:first-child)', function (e) {
  console.log('triggered');
});

h1 longclick和td点击事件有效,但td longpress没有。 有人可以告诉我为什么我不能使用像on('longClick')这样的活动吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

我认为你正在将功能与事件混合在一起。使用$.fn.longClick,您创建了一个已使用$("h1").longClick(...)成功调用的函数。

现在,要像事件一样使用它,您需要先触发它。例如:

$('#dtStatus').click(function() {
    $(this).trigger("myEvent");
});

它会在单击的项目上触发名称为myEvent的事件。然后你可以通过以下方式捕获该事件:

$('#dtStatus').on("myEvent", function() {
    alert("myEvent called!");
});

您可以在jQuery documentation中了解有关自定义事件的更多信息。