0

我有一对或多对用标签制作的 YES - NO 按钮......确切地说:

<label id='label-btn-yes_"+button_counter+"' class='ui-button ui-button-icon-only ui-widget ui-state-default ui-btn-expand-yes_"+button_counter+" '><span id='span-btn-yes_"+button_counter+"' class='ui-button-icon-primary ui-icon ui-icon-plusthick' onClick='expandYes(this,"+row_id+")'></span><span id='span-txt-yes_"+button_counter+"' class='ui-button-text'>Button</span></label>
<label id='label-btn-no_"+button_counter+"' class='ui-button ui-button-icon-only ui-widget ui-state-default ui-btn-expand-no_"+button_counter+" '><span id='span-btn-no_"+button_counter+"' class='ui-button-icon-primary ui-icon ui-icon-plusthick' onClick='expandNo(this,"+row_id+")'></span><span id='span-txt-no_"+button_counter+"' class='ui-button-text'>Button</span></label>

我试图编写这样的代码来切换按钮:

$(selector).removeClass("ui-icon-plusthick").addClass("ui-icon-minusthick").addClass("button-pressed").next().addClass("button-pressed");
if ( $(selector).attr("id") != $(node).find('.ui-icon-minusthick').attr("id") )
$(node).find('.ui-icon-minusthick').removeClass("ui-icon-minusthick").addClass("ui-icon-plusthick").removeClass('button-pressed').next().removeClass('button-pressed');

其中 $(selector) 是我目前正在按下的当前“按钮”,而 $(node) 是在按下状态下找到的用于切换回未按下状态的按钮。

当按下的“按钮”与我按下的当前按钮不同时,它没问题并且效果很好,但我的问题是当我按下相同的“按钮”时,它看起来切换到未按下但又回到按下状态。 ..

那么是否有一种优雅的方法来切换 SAME 按钮并使其在之前处于按下状态时保持未按下状态?

在此先感谢大家!ciao,路易吉

更新:

您可以在此链接中查看测试样本:

http://nunzioluigi.com/test/test.php

我也尝试过 toggleClass() 但是当我在同一个按钮中时,它的行为与 addClass+removeClass 相同...

4

1 回答 1

1

我自己解决了...

不得不颠倒代码的顺序:

if ( $(selector).attr("id") != $(node).find('.ui-icon-minusthick').attr("id") )
   $(node).find('.ui-icon-minusthick').removeClass("ui-icon-minusthick").addClass("ui-icon-plusthick").removeClass('button-pressed').next().removeClass('button-pressed');
$(selector).removeClass("ui-icon-plusthick").addClass("ui-icon-minusthick").addClass("button-pressed").next().addClass("button-pressed");

所以现在它可以工作了。

感谢所有人和 Khôi。

乔,路易吉

于 2012-04-06T09:59:41.573 回答