我在调用函数时选择$(this)的父项时遇到问题。当我选择小1按钮时,可以选择仅切换按钮的按钮。我有一个函数调用来设置Big按钮。我知道我可以在不调用函数的情况下设置大按钮的状态,但这只是更多请求的开始。
我想添加$(this).parent()。prev()。addClass(' big_selected');会不会这样做,但它对我不起作用,有关如何捕获Big按钮元素和添加指定类的任何建议?
在此处查看演示... http://jsfiddle.net/froze1906/aSyUE/1/
答案 0 :(得分:2)
在你的小提琴中对我有用的是改变:
setBig();
为:
setBig.call(this);
因此,在setBig函数中,this
是单击的按钮。
你的setBig函数的参数为evt
,但你永远不会使用它。如果您需要传递它,请将您的功能称为:
setBig.call(this, evt);
此外,您有两个具有相同ID的元素。元素ID应该是唯一的。
答案 1 :(得分:0)
这就是完成你想要的所有东西
$(':button[class*=small]').click(function(){ // <-- on all small button clicks
$(this).parent().prev().addClass('big_selected'); // < -- add big class to closest big button
$(this).addClass('small_selected'); // <-- add class to current clicked
$(':button[class*=small]').not(this).removeClass('small_selected'); // <-- remove class from all but current clicked
$(':button[class*=small]').not($(this).siblings().andSelf()).parent().prev().removeClass('big_selected'); // <-- remove class from Big that is not closest to current clicked
});