我正在尝试为我正在研究的项目构建搜索工具。基本上,我正在过滤页面上的项目列表,然后显示匹配的项目。我遇到的问题是我正在使用分页,并且只要键入第一个字母,分页事件就不会触发,直到您键入第二个字母。当第一个字母输入到输入中时,位于底部context.paginate()和context.createPages(4)的函数不会触发。除此之外,它效果很好,这只是种麻烦,我无法弄清楚为什么这些特定事件没有立即触发。包括解包在内的所有内容都将立即生效,而不仅仅是最后两个功能。有人对这是为什么有任何想法吗?
$(this).on("keyup change", function() {
var searchVal;
console.log(searchVal);
radios = $(section).prev(".filterform").find("input[type='radio']");
//Find which search filter option is checked and use that class for the find
for (var i = 0; i < radios.length; i++) {
if (radios[i].name && $(radios[i]).prop("checked")) {
searchVal = radios[i].value;
}
}
var filter = $(this).val();
if (filter) {
$(section).find("." + searchVal + ":not(:contains(" + filter + "))").closest(".projects").slideUp();
$(section).find("." + searchVal + ":contains(" + filter + ")").closest(".projects").slideDown();
} else {
$(section).find(".projects").slideDown();
}
$(section).find(".pages > .projects").unwrap();
context.createPages(4);
context.paginate();
});
最佳答案
element.keypress(function(e){
//...
if(this.selectionStart==0){
//Do something
}
}