将 $(this) 作为绑定方法的参数传递 - jQuery

Pass $(this) as argument of bind method - jQuery

我想使用 $(this) 作为绑定函数中的参数。

我想绑定元素someClass的class在someEvent发生时执行someFunc(一个已经定义好的函数)

someFunc 接受参数,其中一个是要作用的元素,element。在这种情况下,我想对具有 class 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 只是用给定的 color 给给定的 element 上色。它(根本)不起作用,我不知道为什么。

问题是,在绑定调用期间,$(this) 仍然是另一个上下文,而不是事件处理时的上下文。您现在可能正在传递文件或其他东西。

我看不到使用您最不喜欢的方法的方法,因为只有在事件处理本身期间,上下文才会设置为手头的元素。

补充: 实际上也许,因为在你的尝试中 'someFunc' 是 eventHandler,你实际上可以简单地在 someFunc 的声明中使用 $(this),根本不需要将它作为参数传递。