【发布时间】:2014-04-22 18:56:47
【问题描述】:
我有一个禁用的翻转开关。单击翻转开关时,会出现一个弹出窗口,询问用户是否确定要更改翻转开关。如果他们点击是,那么他们将不得不重新回答几个问题。我希望能够更改翻转开关,回答问题,然后返回并再次更改翻转开关,重新回答问题......等等。由于某种原因,当我单击翻转开关时,它在第一次单击时工作,但第二次单击它会改变它从是到否(或相反)然后返回。它几乎就像它记录了它被点击了多少次一样。
Here is a fiddle to show the issue
这是我的代码:
$("#US_toggle").click(function(){ //flipswitch is clicked
$('#US_Popup').popup('open'); //popup is opened
$('#US_changeYes').click(function(){
if($("#US_toggle .ui-flipswitch").hasClass('ui-flipswitch-active')){
$("#US_toggle .ui-flipswitch").removeClass('ui-flipswitch-active');
}else{
$("#US_toggle .ui-flipswitch").addClass('ui-flipswitch-active');
};
});
});
这里是html:
<div id="US_toggle" class="floatRight">
<select name="US_flipswitch" id="US_flipswitch" data-role="flipswitch" data-theme="c" disabled="disabled">
<option value="off">No</option>
<option value="on">Yes</option>
</select>
</div>
【问题讨论】:
-
只是一个建议。它不会解决您的问题,但会简化您的代码。你可以使用
$("#US_toggle .ui-flipswitch").toggleClass('ui-flipswitch-active')而不是整个hasClass if statment -
您能否向我们展示您的 HTML 标记,或者更好地创建一个重现问题的小提琴?
-
@NevilleNazerane 我尝试了你的建议,不幸的是它没有删除或添加课程。
-
@ezanker 我添加了 HTML。我会试着把小提琴放在一起。
-
@ezanker - fiddle created
标签: jquery jquery-mobile jquery-mobile-popup jquery-mobile-flipswitch