我尝试使用 JavaScript 在单击另一个元素时切换一个元素的可见性。
这是我到目前为止的 JavaScript:
$(document).on('click', '.ticket_title', function(event){
console.log("click!")
$("#ticket_sub_"+$(this).attr("data-id")).slideToggle();
});
但是它无法正常工作,因为点击事件被多次触发。
这是我到目前为止的 html:
<div id="ticket_56" class="ticket_box">
<div class="ticket_title" data-id="56"></div>
</div>
<div id="ticket_sub_56" style="display:none;" class="ticket_sub">
</div>
最佳答案
抱歉,此错误是由 Turbolink 引起的。
turbolinks在页面移动时调用js。 所以js多次绑定(bind)一个文档。
所以我解决这个问题是在绑定(bind)文档之前取消绑定(bind)文档。
$(document).off("click", ".ticket_title");
$(document).on('click', '.ticket_title', function(event){
$("#ticket_sub_"+$(this).attr("data-id")).slideToggle();
});
感谢您的帮助!
关于javascript - Rails jquery 上多次调用 click 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30453342/