jQuery,keyup事件未启动
jQuery, keyup event not firing
我在重构系统中的keyup
事件时遇到问题,该事件最初看起来如下:
$('#quotation_search_client').on('keyup',function(){
param=$('#quotation_search_client').val();
if(param.length>=4){
var params = {
social_reason: $('#quotation_search_client').val()
}
var clients=ClientServices.getByFilter(params);
var addresses=ClientServices.getAddresses(clients.clients);
QuotationServices.fillClients(clients.clients, addresses);
}else{
$('#customers_results').html("");
}
});
当它是这样的时候,它工作得很好,但当我把它改成这个时:
$('#quotation_search_client').on('keyup',QuotationServices.searchClient({social_reason: $('#quotation_search_client').val()}));
并定义函数";searchClient";像这样:
QuotationServices.searchClient = function(params){
param=$('#quotation_search_client').val();
if(param.length>=4){
var clients=ClientServices.getByFilter(params);
var addresses=ClientServices.getAddresses(clients.clients);
QuotationServices.fillClients(clients.clients, addresses);
}else{
$('#customers_results').html("");
}
};
它停止工作,当我打字时什么也没发生。控制台没有显示任何错误,所以我在searchClient
函数的开头写了一个console.log,很明显,当我的页面加载时,它会触发,显示params.social_reason
带有一个空字符串,但当我键入一些内容时,正如我所说,什么都不会发生。我不知道我缺少了什么,我所做的只是将事件的代码复制/粘贴到searchClient
函数中,并删除var params
(因为我会将其作为参数接收),有什么帮助吗?
您在keyup事件声明之后立即执行函数,因此不会将函数传递给keyup事件。
你应该改为:
$('#quotation_search_client').on('keyup',QuotationServices.searchClient);
和变化:
QuotationServices.searchClient = function(){
var params = {social_reason: $('#quotation_search_client').val()}
var param = $('#quotation_search_client').val();
if(param.length>=4){
var clients=ClientServices.getByFilter(params);
var addresses=ClientServices.getAddresses(clients.clients);
QuotationServices.fillClients(clients.clients, addresses);
}else{
$('#customers_results').html("");
}
};
相关文章:
- 从控制器返回后Ajax启动事件激发
- 触摸启动事件未在iframe iOS 6中启动
- preventDefault之后的重新启动事件
- 如何获取在一系列事件中启动事件的元素
- 当窗口打开时,IE9在加载前启动事件
- 我的 JS 代码中的会话启动事件
- 仅当前一个事件完全完成时,才启动事件
- jQuery UI - 如何区分拖动/调整大小启动事件和单击事件
- Javascript “卡住”键(未注册的键启动事件)
- pace.js:“启动”事件未触发
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 如何将“拖动启动”事件与 CKEditor 实例分离
- 触摸启动事件上的Javascript触发函数
- 绑定到触摸启动事件,导致自动对焦集中在Mobile Safari中的任何单击上
- 触摸启动事件未在原来隐藏的按钮上工作
- 有没有一种方法可以使触摸启动事件不会触发点击事件
- 检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]
- 如何检测浏览器是否支持手势启动事件
- 首先启动事件,然后转到url
- 在IE7中无法捕获鼠标启动事件