Jquery 执行keyup一次
当我开始在文本框中键入内容时,我正在尝试加载gif加载程序。我将它附加到包含keyup上的文本框的div中。我遇到的问题是,每次我键入一个字母时都会追加加载器,而我只想在键入第一个字母时追加一次加载器Jquery 执行keyup一次,jquery,onkeyup,Jquery,Onkeyup,当我开始在文本框中键入内容时,我正在尝试加载gif加载程序。我将它附加到包含keyup上的文本框的div中。我遇到的问题是,每次我键入一个字母时都会追加加载器,而我只想在键入第一个字母时追加一次加载器 function loader(){ $('#contrib_search').bind('keyup', function(){ $('#contrib_text').append('<div id="loader"></div>');
function loader(){
$('#contrib_search').bind('keyup', function(){
$('#contrib_text').append('<div id="loader"></div>');
});
}
函数加载器(){
$('contrib_search').bind('keyup',function(){
$('contrib_text')。附加('');
});
}
知道怎么做吗?谢谢我的建议是将硬代码加载到HTML代码中,然后在
.keyup()
事件处理程序上显示它
然后,例如,在.blur()
事件.hide()
中单击该按钮,问题就消失了
编辑:
添加加载程序后,可以解除键合绑定
function loader(){
$('#contrib_search').bind('keyup', function(){
$('#contrib_text').append('<div id="loader"></div>');
$('#contrib_search').unbind('keyup'); //or $(this).unbind probably a tad faster
});
}
函数加载器(){
$('contrib_search').bind('keyup',function(){
$('contrib_text')。附加('');
$('contrib_search')。解除绑定('keyup');//或$(this)。解除绑定可能要快一点
});
}
也许这样可以:
var pressed = false;
function loader(){
$('#contrib_search').bind('keyup', function(){
if (pressed == false ){
$('#contrib_text').append('<div id="loader"></div>');
pressed = true;
}
});
}
var pressed=false;
函数加载器(){
$('contrib_search').bind('keyup',function(){
如果(按下==false){
$('contrib_text')。附加('');
按下=真;
}
});
}
或者不使用这个布尔值,只需调用unbind,而不是我的行表示pressed=true 使用“one”可以帮助:
function loader() {
$('#contrib_search').one('keyup', function () {
$('#contrib_text').append('<div id="loader"></div>');
});
}
函数加载器(){
$('contrib#u search')。一个('keyup',函数(){
$('contrib_text')。附加('');
});
}
为什么不让加载程序显示:默认情况下无
,然后在按键上交换类
function loader() {
$('#contrib_search').one('keyup', function () {
$('#contrib_text').append('<div id="loader"></div>');
});
}