我想创建customEvent。例如,我有一些元素,每个人都在听这个事件。当我单击其中之一时,我想触发我的customEvent。怎么做?

例:

var customEvent = new Event('customEvent');

var $ul = $('ul');

var $markers = $('#map').find('.markers');

// UL>LI
$ul.delegate('click', 'li', function(){
    customEvent.trigger();
});

$ul.delegate('customEvent', 'li', function(){
    $ul.find('li').removeClass("active");

});

// MAP MARKERS
$markers.on('click', 'li', function(){
    customEvent.trigger();
});

$markers.on('customEvent', function(){
    // do sth
});

最佳答案

它很简单,您需要使用.trigger()函数


  执行给定事件类型的所有处理程序和附加到匹配元素的行为。


脚本

ele.on('click', function() {
      $(this).trigger('customEvent');
      //Or, $(this).trigger(customEvent);
});

关于javascript - Javascript自定义事件-触发所有监听器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33302855/

10-10 16:18