所以我只想尝试3个链接,当你点击一个链接时,它会呈现一个相应的表单。我以为我熟悉jQuery,但显然并没有发生奇怪的事情。我的代码如下
的jQuery
$("#show_basic_selector").click(function() {
hide().after('<%= j render("basic") %>');
});
$("#show_team_selector").click(function() {
alert("Hello");
});
$("#show_custom_selector").click(function() {
alert("Hello");
});
查看
<%= link_to "Show form 1", { :action => 'new_order' }, id: "show_basic_selector", remote: true %>
<%= link_to "Show form 2", { :action => 'new_order' }, id: "show_team_selector", remote: true %>
<%= link_to "Show form 3", { :action => 'new_order' }, id: "show_custom_selector", remote: true %>
我的问题是当我使用警报功能进行测试以查看它是否有效时,当我点击链接时,当我点击它时会开始显示随机数量的警报(2-15),当我设置渲染功能,它隐藏所有三个并显示所有三个表单。知道发生了什么事吗?
答案 0 :(得分:0)
你可能正在附加多个事件处理程序,我认为你的意思是在你的第一个函数中定位$(this)。尝试取消附加其他事件处理程序,以确保只获得一个。这并不理想,因为您的应用中可能存在设计缺陷或错误,但请尝试以下方法:
$("#show_basic_selector").off().on('click' , function() {
$(this).hide().after('<%= j render("basic") %>');
});
$("#show_team_selector").off().on('click', function() {
alert("Hello");
});
$("#show_custom_selector").off().on('click', function() {
alert("Hello");
});