jQuery cookie破坏了我的CSS切换输入

时间:2018-09-22 18:12:56

标签: javascript jquery html css

我正在使用jQuery Cookies和jQuery隐藏和显示以及复选框切换来控制何时显示价格。

bind()

这很好用,但jQuery破坏了我的CSS切换,并且我一生都无法弄清楚为什么。

这里是摆弄这个问题的小提琴(请注意拨动开关不会切换):

https://jsfiddle.net/ra5t0hfo/7/

并删除了与jQuery相同的提琴,在我的切换正常的情况下

https://jsfiddle.net/14fy0u3o/

2 个答案:

答案 0 :(得分:2)

您俩的小提琴仍然使用jQuery。这只是其中一个没有cookie库的地方。没有cookie库的库是可以使用的库,因为您的点击处理程序从未设置。

这是因为您的代码在ShowPrices()的第一行出现了错误

if($.cookie('VATMODE') == "INC"){

由于cookie库不存在,$.cookie未定义,因此引发错误。如果打开控制台(在大多数浏览器中为F12->控制台选项卡),您会看到类似Uncaught TypeError: $.cookie is not a function之类的错误,此错误会影响函数中其余代码的运行

ShowPrices(); //error happens in ShowPrices, execution stops here does not continue

$('input#togBtn').click(function(){
  //...
});

使用cookie库的那个库不起作用的原因是,永远不会引发该错误,并且您的点击处理程序已设置。然后您在该处理程序中return false,该操作可防止复选框更改状态的默认操作

jQuery("#thecheck").click(function(){ return false });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="thecheck">

如果您希望复选框可切换,请取出return false语句。

答案 1 :(得分:1)

为什么用false返回$('input#togBtn')?删除退货作品。

检查Image6