我想在绑定函数中使用$(this)
作为参数。
我希望在someClass
发生时绑定元素类someFunc
以执行someEvent
(已定义的函数)。
someFunc
接受参数,一个是作用的元素,element
。在这种情况下,我想对发生事件的类someClass
中的任何元素采取行动。
所以,我想我会使用$(this)
,就像绑定函数中的一个参数一样:
$('.someClass').bind('someEvent', {element: $(this)}, someFunc);
但是,尽管对我有意义,但这似乎并不奏效。
如何在绑定方法中使用$(this)
或会产生相同结果的内容?
我不想使用以下内容:
$('.someClass').bind('someEvent', function() {
someFunc($(this));
});
编辑:以我不喜欢的方式尝试
$(document).ready(function() {
$('.menu-hover').bind('mouseenter', function() {
hover_true($(this), '#1B4186');
});
$('.menu-hover').bind('mouseleave', function() {
hover_false($(this), '#26519E');
});
});
function hover_color(element, color) {
$(element).css('background-color', color);
};
hover_color
只是用给定的element
为给定的color
着色。它根本不起作用,我不明白为什么。
答案 0 :(得分:1)
问题是,在绑定调用期间,$(this)仍然是另一个上下文,而不是eventHandling时的上下文。您现在可能正在传递文档或其他内容。
我没有看到使用您最不喜欢的方法的方法,因为只有在事件处理本身期间,上下文才被设置为手头的元素。
增加: 实际上也许,因为在你的尝试中'someFunc'是eventHandler,你实际上可以在someFunc的声明中使用$(this),而不需要将它作为参数传递。