我有一段代码在jQuery 1.7或2.0下工作正常,但不能在jQuery 1.9下工作。加载页面时列表变空。
该功能用于过滤列表,作为用户输入文本,列表将被更改。
HTML:
<input type="text" id="keyword" />
<ul>
<li>fa</li>
<li>abc</li>
<li>bcd</li>
<li>def</li>
</ul>
JS:
$("#keyword").keyup(function () {
$("ul li").hide().filter(":contains('" + ($(this).val()) + "')").show();
}).keyup();
例如,当用户输入“a”时,列表将为“fa,abc”,当用户输入“bc”时,列表将为“abc,bcd”。
我在这里创建了一个演示:http://jsfiddle.net/nmVfq/2/
如何更改此脚本以使其在jQuery 1.9下运行?
答案 0 :(得分:2)
在绑定keyup-event之后调用keyup()。也许:包含在版本之间发生了变化,所以空参数不匹配?我没有找到任何有关这方面的信息,但我现在看不出更多。
尝试添加if语句以检查值是否为空,并显示所有项目。
$("#keyword").keyup(function () {
if( $(this).val() == '' ) {
$("ul li").show();
} else {
$("ul li").hide().filter(":contains('" + ($(this).val()) + "')").show();
}
}).keyup();
答案 1 :(得分:1)
试试这个
$("#keyword").keyup(function () {
if($(this).val()==""){
$("ul li").show();
return
}
$("ul li").hide().filter(":contains('" + ($(this).val()) + "')").show();
}).keyup();