【发布时间】:2022-10-14 16:53:06
【问题描述】:
每次用户在输入框中键入值时,我都试图在 div 中显示我的数据库中的一些内容。我正在使用 jquery 来执行此操作。但是每当我输入一些东西时,一旦进入输入框......回调函数就会重复四次。
这是我的jQuery代码:
getProducts(){
$('.search-products').on('keyup', function(){
const searchProducts = new SearchProducts();
let search = $.trim($(this).val()); // get search text
if(search!==""){
// let data = {search: search};
let url = '/search-for-products/' + search;
$.ajax({
type: "GET",
url: url,
data: {},
success: function(response){
if(response.success){
searchProducts.showSearchProducts(response.products);
}
}
});
}
});
}
这是 html 输入标签:
<input type="text" class="form-control search-products" placeholder="What are you searching for ?" aria-label="Username" aria-describedby="basic-addon1" style="color: lightgrey;">
我希望您对我的代码可能出现的问题发表诚实的看法。因为,我现在很困惑该怎么办。
【问题讨论】:
-
搜索
getProducts()方法被调用了多少次,如果不止一次,那么新的事件处理程序将绑定到该事件的次数。 -
将
getProducts(){ ...更改为getProducts() { console.log("getproducts")...加载您的页面并查看“getproducts”出现在浏览器控制台中的次数,注意它可能显示为(4) getproducts- 所以请留意这个数字 - 这是它出现的次数重复而不更改 - chrome 将它们组合成一行,因此您的浏览器日志不会被垃圾邮件
标签: javascript jquery onkeyup