我只是练习jQuery.如果这是一个奇怪的问题,请原谅我.
问题:我们可以分配jQuery(this)给变量吗?
说明:
我可以为变量分配各种jQuery选择器,然后我可以使用这些变量来调用不同的jQuery函数.
例如
$filterSwitch = jQuery('.filter-switch');
$filterSwitch.click(function(e) {
alert("Filter Button Clicked"); // This works without any problem
});
Run Code Online (Sandbox Code Playgroud)
另一方面,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
});
Run Code Online (Sandbox Code Playgroud)
这是不允许的,还是有任何特定的方式分配jQuery(this)给变量?
那是因为你需要记住它this指的是你当前所处的背景.
所以第一个
$current = jQuery(this);
Run Code Online (Sandbox Code Playgroud)
可能意味着身体或第二个以外的东西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
});
Run Code Online (Sandbox Code Playgroud)
请注意,第一行现在指的是具有filter-switch类的所有元素,而第二行仅指向您正在处理的那一行.
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |