Jquery 更改回调函数
小提琴:Jquery 更改回调函数,jquery,Jquery,小提琴: 由于某种原因,它没有切换类,我不确定它为什么不工作。因为输入在.subscriptiondiv元素中,反之亦然。因此,此下面没有.subscription元素。。。没有要应用的toggleClass()。你到底想实现什么?这是因为.subscriptionselect不是输入元素的子元素,而该元素就是编写代码的方式。相反,.subscription元素是一个父元素,因此您需要使用正确的jQuery操作来查找合适的父元素,如下所示: $('input.plan-select').chan
由于某种原因,它没有切换类,我不确定它为什么不工作。因为
输入
在.subscription
div元素中,反之亦然。因此,此下面没有.subscription
元素。。。没有要应用的toggleClass()
。你到底想实现什么?这是因为.subscription
select不是输入
元素的子元素,而该元素就是编写代码的方式。相反,.subscription
元素是一个父元素,因此您需要使用正确的jQuery操作来查找合适的父元素,如下所示:
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(".subscription", this).toggleClass('selected');
});
.closest()
将查找父链,直到找到与选择器匹配的第一个父链
在此进行工作演示:
似乎正在工作我真的不知道你想用那个选择器做什么。。。 您可以使用“this”选择器获取单选按钮,然后使用.parent()指令将其提升一级
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$([".subscription", this]).toggleClass('selected');
});
你也可以使用
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).parent().toggleClass('selected');
});
如果您只有所述类的一个元素。一个
输入是一个无效元素:它不能包含任何其他元素。因此,使用它作为选择器的上下文将永远也不会找到元素。你到底想做什么?啊,是的,但我想知道为什么我的不行?我敢肯定,在我对同样的语法感到疑惑之前,我就使用了这种语法,因此我的怀疑评论——“似乎正在工作”实际上已经有一段时间没有使用jquery了。查看其文档,jQuery(选择器,[context]);因此jQuery(选择器,…)将无法工作。但是,您可以提供jQuery(selectorArray);这就是你的方法不起作用的原因。这正被用作上下文。
$('input.plan-select').change(function() {
// alert('Handler for .change() called.');
$(this).parent().toggleClass('selected');
});
$('.subscription').toggleClass('selected');