分离jQuery函数?

时间:2013-01-14 21:26:25

标签: jquery ruby-on-rails ruby

所以我只想尝试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),当我设置渲染功能,它隐藏所有三个并显示所有三个表单。知道发生了什么事吗?

1 个答案:

答案 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");
});
相关问题