0

我真的被一个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();
});

它也不起作用。我想知道我哪里做错了。谁能帮我吗?谢谢!!

4

2 回答 2

0

当输入元素失去焦点时会触发“change”事件。如果您希望在每个按键输入结束时调用 ajax,请尝试使用键盘事件

于 2012-08-10T17:55:14.717 回答
0

正如 Shabnam 所指出的,“更改”事件不是您想要的,因为它仅在字段模糊时才会触发。

无论如何,从插件文档看来,您不必每次按下键时都调用该函数,但它会自动附加自己的事件处理程序。

所以,也许你应该没问题:

$(document).ready(function() {
    $(".value").tagsInput();
});

您的.on处理程序将永远无法工作,因为该load事件仅document在页面准备好时才会触发。

如果您想稍微调试一下,请查看支持的回调,例如onChange.

边注

我不喜欢这个插件的编写方式,因为它jQuery.fn用很多函数阻塞了“全局”命名空间,而 jQuery 文档建议不要这样做(参见:命名空间)。

更新

请参阅此处: http: //jsfiddle.net/aFPHL/一个此工作的示例(.load()为避免调用实际 URL,已对其进行了猴子补丁,但其行为与真实 URL 几乎相同)。

于 2012-08-10T18:02:31.923 回答