我有一个在rails应用程序上使用.keyup方法的搜索功能。我知道这个电话有效,因为我输入的第一个字母是搜索并显示结果。如果我继续键入它不会继续搜索该方法。这是我下面的jquery以及我正在调用的rails视图部分。
JQuery
$("input#search").keyup(function (){
$.get($("#verified_search").attr("action"), $("#verified_search").serialize(), null, "script");
return false;
});
index.js.erb的
$(".results").html("<%= escape_javascript(render("search")) %>");
index.html.erb查看
<%= form_tag admin_view_index_path, :method => 'get', :id => 'verified_search' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => :nil %>
<% end %>
<%= render 'search' %>
答案 0 :(得分:0)
使用.live()
$("input#search").live('keyup', function (){
$.get($("#verified_search").attr("action"), $("#verified_search").serialize(), null, "script");
return false;
});
当您替换index.js.erb中$('.results')
的内容时,与这些元素关联的所有侦听器都将消失。
编辑:正如链接中所述,从{jQuery 1.7开始'不推荐使用.live()
方法。使用.on()
附加事件处理程序。旧版jQuery的用户应优先使用.delegate()
.live()
。
答案 1 :(得分:0)
试试这个
$(document).on("keyup", "#verified_search", function(){
$.get($("#verified_search").attr("action"), $("#verified_search").serialize(), null, "script");
return false;
});