我为jQuery写了一个clickOut
事件。它适用于非常基本的东西。现在,我正在使用下拉菜单扩展测试。好像this
似乎陷入了封锁之中。如何在不改变调用clickOut
的方式的情况下解决此问题?
(function ($) {
'use strict';
$.fn.clickOut = function (eventData, handler) {
$('html').click($.proxy(function (event) {
if (this.has(event.target).length === 0) {
event.delegateTarget = this.get();
console.log(this);
if (handler === undefined) {
eventData(event);
} else {
handler(event);
}
}
}, this));
};
}(jQuery));
jQuery('li').click(function (event) {
jQuery(this).children().toggle('fast');
console.log(this);
event.stopPropagation();
});
jQuery('li li').clickOut(function () {
console.log(this);
jQuery(this).children().hide('fast');
});
答案 0 :(得分:2)
您没有将this
绑定到回调中的任何内容,请尝试:
eventData.call(this, event);
handler.call(this, event);