javascript – 如何以编程方式在Chrome中切换Zurb Foundation Switch Control?

我想使用 javascript动态切换Zurb Foundation Switch控件的状态.

这是认的Zurb基金会开关:

<!-- Default switch --> 
<div class="switch">   
  <input id="d" name="switch-d" type="radio" checked>   
  <label for="d" onclick="">Off</label>

  <input id="d1" name="switch-d" type="radio">
  <label for="d1" onclick="">On</label>

  <span></span>
</div>

演示here.我相信它们基于this project.

当我尝试使用jquery更改开关的状态时:

$('#d1').attr('checked','checked'); $('#d').removeAttr('checked'); // Switch ON
$('#d').attr('checked','checked'); $('#d1').removeAttr('checked'); // Switch OFF

它适用于Firefox但不适用于Chrome.在Chrome [OSX10.8.3上的v25]中,第一个命令 – Switch ON – 成功但当我尝试使用$(‘#d’).attr(‘checked’,’checked’); $( ‘#D1’)removeAttr( ‘检查’).然后看起来CSS没有正确地拾取元素作为被检查和显示balks – 看看下面图像中的最后一个Switch没有正确显示OFF状态.

您可以在Zurb Foundation文档的Switch page上测试这些命令; d指的是您在页面顶部列表中看到的第四个和最大的开关.

解决方法

您可以直接调用元素上的click函数.
$("#d1").click(); // Switch ON

您将遇到的问题是元素的ID会发生变化,因此稍微有点棘手,您可以使用更智能的选择器来获取元素.
元素状态发生变化后,您会注意到ID已更改为:

$("#d").click(); // Switch OFF

现在,这将切换回关闭状态.

干杯奥利弗.

相关文章

什么是深拷贝与浅拷贝?深拷贝与浅拷贝是js中处理对象或数据...
前言 今天复习了一些前端算法题,写到一两道比较有意思的题:...
最近在看回JavaScript的面试题,this 指向问题是入坑前端必须...
js如何实现弹出form提交表单?(图文+视频)
js怎么获取复选框选中的值
js如何实现倒计时跳转页面