当前位置:  开发笔记 > 编程语言 > 正文

jQuery:我们不能将jQuery(this)分配给变量吗?

如何解决《jQuery:我们不能将jQuery(this)分配给变量吗?》经验,为你挑选了1个好方法。

我只是练习jQuery.如果这是一个奇怪的问题,请原谅我.

问题:我们可以分配jQuery(this)给变量吗?

说明:

我可以为变量分配各种jQuery选择器,然后我可以使用这些变量来调用不同的jQuery函数.

例如

    $filterSwitch = jQuery('.filter-switch');

    $filterSwitch.click(function(e) {
       alert("Filter Button Clicked"); // This works without any problem
    });

另一方面,jQuery(this)在将其分配给变量之后,我似乎无法使用.

例如

    $filterSwitch = jQuery('.filter-switch');
    $current = jQuery(this);

    $filterSwitch.click(function(e) {
       $current.toggleClass("filter-on"); // This does not work
       jQuery(this).toggleClass("filter-on"); // This works
    });

这是不允许的,还是有任何特定的方式分配jQuery(this)给变量?



1> Arcturus..:

那是因为你需要记住它this指的是你当前所处的背景.

所以第一个

$current = jQuery(this); 

可能意味着身体或第二个以外的东西this.

第二个this是在click方法的上下文中,并且该上下文设置为.filter-switch

希望有任何意义:)

你可以这样做:

$filterSwitch = jQuery('.filter-switch');

$filterSwitch.click(function(e) {
   $filterSwitch.toggleClass("filter-on"); // This works for all elements with that class
   jQuery(this).toggleClass("filter-on"); // This works only for the one you're clicking atm
});

请注意,第一行现在指的是具有filter-switch类的所有元素,而第二行仅指向您正在处理的那一行.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有