在rails jquery上多次调用click事件

时间:2015-05-26 08:27:20

标签: javascript jquery ruby-on-rails

我正在尝试使用JavaScript在点击其他元素时切换元素的可见性。

到目前为止,这是我的JavaScript:

$(document).on('click', '.ticket_title', function(event){  
    console.log("click!")
    $("#ticket_sub_"+$(this).attr("data-id")).slideToggle();
});

但是它无法正常工作,因为click事件会被多次触发。

这是我到目前为止的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>

2 个答案:

答案 0 :(得分:1)

抱歉,这个错误是由turbolinks造成的。

turbolinks在页面移动时被称为js。 所以js多次绑定一个文档。

所以我解决了这个问题,在绑定文档之前取消绑定文档。

$(document).off("click", ".ticket_title");
$(document).on('click', '.ticket_title', function(event){
    $("#ticket_sub_"+$(this).attr("data-id")).slideToggle();
});

感谢您的帮助!

答案 1 :(得分:0)

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
$(document).on('click', '.ticket_title', function(event){  
console.log("click!");
doc="#ticket_sub_"+$(this).attr("data-id");
$(doc).slideToggle();
});

尝试将正常工作。