Javascript 如何只附加一次ajax数据?
当用户选择下拉菜单时,我试图将新返回的数据附加到我的选择标记Javascript 如何只附加一次ajax数据?,javascript,jquery,Javascript,Jquery,当用户选择下拉菜单时,我试图将新返回的数据附加到我的选择标记 obj.prototype.getText=function(){ codes.... call ajax.... ajax.callback=function(data){ $('#option').append(data); } } $('#dropdown').on('change', function(
obj.prototype.getText=function(){
codes....
call ajax....
ajax.callback=function(data){
$('#option').append(data);
}
}
$('#dropdown').on('change', function(){
obj.getText()
})
我的问题是,我只想在用户第一次单击下拉菜单时添加数据。
只要用户继续单击下拉菜单,“我的代码”将继续向“我的#选项”添加更多相同的数据
有办法解决这个问题吗?非常感谢 您需要转动处理器
像这样的
$('#dropdown').on('change', function(){
obj.getText()
$('#dropdown').off('change');
})
你需要转动手柄
像这样的
$('#dropdown').on('change', function(){
obj.getText()
$('#dropdown').off('change');
})
您可以简单地删除on change事件,这样它就不再被触发
$('#dropdown').off('change');
我还将研究“运行一次”命令的概念。这并不是我在这里要推荐的,但展望未来,这是一件很酷的事情。Underline.js您只需删除更改时事件,它就不再被触发
$('#dropdown').off('change');
我还将研究“运行一次”命令的概念。这并不是我在这里要推荐的,但展望未来,这是一件很酷的事情。Underline.js使用.one()
而不是.on()
。一旦触发事件一次,它就会自动解除绑定:
$('#dropdown').one('change', obj.getText);
使用.one()
而不是.on()
。一旦触发事件一次,它就会自动解除绑定:
$('#dropdown').one('change', obj.getText);
这可能是最好的方法,事件处理程序,或者您可以始终在隐藏字段中存储bool值,如
<input type="hidden" id="hidAleadyAppended" />
然后在附加一次后将其设置为true
如果您需要知道它是否已经附加到其他代码中,那么这种方法是一种快速可靠的检查方法,这可能是最好的方法,即打开事件处理程序,或者您可以始终在隐藏字段中存储bool值,如
<input type="hidden" id="hidAleadyAppended" />
然后在附加一次后将其设置为true
这样,如果您需要知道它是否已经附加到其他代码中,这是一种快速可靠的检查方法Hah,这里我推荐一个一次/一次风格的函数,但是对于coure,jQuery内置了它:)+1you@Bartek当前位置那没什么错。只有一行代码不同。哈,这里我推荐一个一次/一次风格的函数,但是对于coure,jQuery内置了它:)+1you@Bartek当前位置那没什么错。只有一行代码不同。