我需要在events对象中识别文档上的特定事件。例如
$(document).click(function () {
console.log(1)
});
$(document).click(function () {
console.log(2)
});
var events = $._data(document, "events");
console.log(events);
当我记录所有“点击”事件时,它之间没有区别:
如何为每个活动添加自定义ID?也许我可以使用命名空间,或者我可以更改 guid ?
我需要检查:“特定事件是否存在?”
答案 0 :(得分:2)
您可以绑定并将参数传递给回调侦听器以标识类型
$(document).click(function (type) {
console.log(type)
}.bind(this,"i-am-click"));
$(document).click(function (type) {
console.log(type)
}.bind(this,"i-am-another-click"));
var events = $._data(document, "events");
console.log(events);
<强>更新强>
要识别您的事件数组中的特定事件对象,您可以执行以下操作。
$(document).click(
(function(){
var fn = function(){ // Your callback function
console.log('i-am-click');
};
fn.event_id=1; // Adding id to the callback.
return fn; // returning the function after adding id
})()
);
$(document).click(
(function(){
var fn = function(){ // Your callback function
console.log('i-am-another-click');
};
fn.event_id=2; // Adding id to the callback.
return fn; // returning the callback function after adding id
})()
);
var events = $._data(document, "events");
// Find the events in the event array using filter
// This will return an array of match event with id in events array
events.click.filter(function(ev){return ev.handler.event_id==1;}); // event id you are looking for
答案 1 :(得分:1)
你已经澄清说:
我想知道[如果] ...事件处理程序已经注册
使用标志:
`git config --global core.editor "vim"`
如果在某些时候你需要知道处理程序“a”是否已注册:
var handlersRegistered = {};
$(document).click(function() {
console.log("a");
});
handlersRegistered["a"] = true;
$(document).click(function() {
console.log("b");
});
handlersRegistered["b"] = true;
无需在jQuery的内部进行讨论。
(我正在使用if (handlersRegistered["a"]) {
// Yes it is
} else {
// No, it isn't
}
而不是handlersRegistered["a"]
,以防您想为这些无效标识符使用标签。)