我只是练习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)
给变量?
那是因为你需要记住它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类的所有元素,而第二行仅指向您正在处理的那一行.