我有一个与之关联的HTML按钮和点击事件。该事件多次发生。我试过.off& .unbind也。
$("div.onoffswitch").off().on("click", function() {
alert("clicked");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div class="onoffswitch">
<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked>
<label class="onoffswitch-label" for="myonoffswitch">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
更新:原始问题不明确,但如果label
中有文字(问题代码中缺少),则会发生这种情况。
答案 0 :(得分:2)
如果单击label for
内的文本(在额外范围内或不在额外范围内),则会出现问题,它会为复选框引发一个单击事件 - 然后传播/冒泡到包含div。
label for
允许您将复选框与相关文本相关联 - 单击文本并切换复选框。
您有两种选择:
label for
链接文字+复选框如果您尝试允许其他点击更改文本框(例如,使用图片),请不要使用label for
。但请记住,如果您之后使用该事件进行切换,则单击复选框本身将会切换 - 所以所有新问题都会出现。
如果您在复选框更改时尝试查找,请在复选框(而不是div)上使用label for
changed()
事件