2013-10-28 83 views
0

- EDIT--切换按钮 - 单击一个和所有切换开关

我有切换按钮,其中幻灯片左右。切换和动画工作正常,但在同一页面上添加多个切换按钮的实例时会出现问题。当我点击切换按钮时,所有切换按钮都使用相同的VAR。因此,如果您打开一个,然后再单击另一个,则第二个不会打开,因为它认为应该关闭。你会在哪里放置isChecked var,以便每个实例都有所不同?

爵士小提琴 http://jsfiddle.net/amQCN/11/

$(document).ready(function() { 


var isChecked = false; 
$('.toggle-radio-switch').click(function() { 
    if (isChecked == true) { 
     $(this).find('.radio-switch-slider').animate({'margin-left': '0px'},'150'); 
     isChecked = false; 
     console.log("isChecked = " + isChecked); 
    } else { 
     $(this).find('.radio-switch-slider').animate({'margin-left': '34px'},'150'); 
     isChecked = true; 
     console.log("isChecked = " + isChecked); 
    }; 
}); 


}); 

无线电开关滑块位于内容的顶部和来回滑动露出yes或no

<div class="toggle-radio-switch" id="toggle3"> 
    <span>yes</span> 
    <span>no</span> 
    <div class="radio-switch-slider"></div> 
</div> 

工作版本柜面你想知道:

刚结束使用此代替

$('.toggle-radio-switch').click(function() { 
    if ($(this).find('.radio-switch-slider').css('margin-left')=="0px"){ 
     $(this).find('.radio-switch-slider').animate({'margin-left': '34px'},'150'); 
    } else { 
     $(this).find('.radio-switch-slider').animate({'margin-left': '0px'},'150'); 
    } 
}); 
+0

包含我添加了一个FIDDLE - http://jsfiddle.net/amQCN/10/ – three7studio

回答

2

我打赌你的.toggle-radio-switch元素是兄弟姐妹。从您的代码中删除.parent()。它不是必要的,因为.radio-switch-slider直接在.toggle-radio-switch

$(this).find('.radio-switch-slider')... 
+0

这一切是...所以显然,你指出这一点后, ,但现在每个人都单独工作,var不会在本地设置,因此所有切换都使用相同的var = /如何在此脚本中为每个切换创建var local? – three7studio

+1

您可以使用'data' http://api.jquery.com/data/将其存储在元素本身上,或者只需检查'margin'的当前值以查看它处于哪个状态。 –

+0

谢谢james,它工作正常。 ..刚刚剥离变种,并检查了马林。 – three7studio