[英]jQuery late binding of Ajax elements doesn't work
我真的陷入了jQuery问题,希望有人能帮帮我...
因此,我在左侧有一个选项列表,当您单击一个选项时,将通过右侧的Ajax生成一个表单。 该元素的形式为:
<input type="text" class="value" value="something">
我想做的就是打电话
$(".value").tagsInput();
当您提出问题时,这是一个jQuery插件,其工作原理与SO的“标签”输入字段非常相似。
所以我尝试了这个:
$(document).ready(function() {
$(".value").on("load", function () {
console.log("Tags Input");
$(".value").tagsInput();
});
});
而且什么也没打印出来。 我也尝试过这个:
$(document).on("change", ".value", function () {
console.log("Tags Input");
$(".value").tagsInput();
});
而且也不起作用。 我想知道我做错了什么。 谁能帮我吗? 谢谢!!
当输入元素失去焦点时,将触发“更改”事件。 如果要在每个按键输入的末尾进行ajax调用,请尝试使用键盘事件
正如Shabnam指出的那样,“改变”事件是不是你想要的,因为一旦外地模糊它仅触发。
无论如何,从插件文档中可以看出,您不必每次按下键时都调用该函数,但是它会自动附加自己的事件处理程序。
因此,可能您只需要:
$(document).ready(function() {
$(".value").tagsInput();
});
您的.on
处理程序将永远无法工作,因为只有页面准备好后, load
事件才由document
触发。
如果您想稍微调试一下,请查看受支持的回调,例如onChange
。
边注
我不喜欢该插件的编写方式,因为它会阻塞具有许多功能的“全局” jQuery.fn
命名空间,而jQuery文档建议不要这样做(请参阅: Namespacing )。
更新
参见此处: http : //jsfiddle.net/aFPHL/此工作的一个示例.load()
.load .load()
进行了猴子修补,以避免调用实际URL,但其行为与真实URL几乎相同)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.