Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定义并触发自定义事件_Javascript_Jquery - Fatal编程技术网

Javascript 定义并触发自定义事件

Javascript 定义并触发自定义事件,javascript,jquery,Javascript,Jquery,我需要在我的数据表的单元格上调用自定义事件。因此,我有以下方法: (function ($) { $.fn.longClick = function (callback) { //event }; })(jQuery); 为了进行绑定,作为测试,我执行以下操作: $("h1").longClick(function () { console.log('triggered'); }); 我需要替换我的单击事件: $('#dtStatus').on('click', 'tbo

我需要在我的数据表的单元格上调用自定义事件。因此,我有以下方法:

(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
click事件起作用,但td
longpress
不起作用。 有人能告诉我为什么我不能在('longClick')上使用我的事件吗


谢谢。

我认为你把功能和事件混为一谈了。使用
$.fn.longClick
创建了一个函数,您已经使用
$(“h1”).longClick(…)
成功调用了该函数

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

$('#dtStatus').click(function() {
    $(this).trigger("myEvent");
});
它会在所单击的项目上触发名为
myEvent
的事件。然后,您可以通过以下方式捕捉该事件:

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

您可以在中阅读有关自定义事件的更多信息。

对于('longClick')上的
要工作,您需要在代码中的某个位置使用
trigger('longClick')
。您正在这样做吗?在您的情况下,
longClick
不是一个事件,而是一个插件(除非您使用
trigger()
方法在plugin@RoryMcCrossan不,我没有那样做。对不起,我很难理解
trigger('longClick')的作用
。你能告诉我更多的细节吗?@ArunPJohny,谢谢你的answare。我不熟悉
trigger()
的用法。我要做一些搜索