0

我在调用函数时选择 $(this) 的父级时遇到问题。当我选择小 1 按钮时,按钮会切换,因为只能选择一个。我也有一个函数调用来设置大按钮。我知道我可以在不调用函数的情况下设置大按钮的状态,但这只是更多请求的开始。

我想添加 $(this).parent().prev().addClass('big_selected'); 会做到这一点,但它对我不起作用,关于如何捕获大按钮的元素并添加指定的类有什么建议吗?

在此处查看演示... http://jsfiddle.net/froze1906/aSyUE/1/

4

2 回答 2

2

在你的小提琴中对我有用的东西正在改变:

setBig();

到:

setBig.call(this);

这样在 setBig 函数中,this就是被点击的按钮。

您的 setBig 函数的参数为evt​​ ,但您从不使用它。如果您需要传递它,请将您的函数称为:

setBig.call(this, evt);

此外,您有两个具有相同 id 的元素。元素 ID 应该是唯一的。

于 2012-07-20T18:34:35.467 回答
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
});

http://jsfiddle.net/aSyUE/3/

于 2012-07-20T18:37:25.137 回答