当使用新值更新SelectList时,jQuery会阻止触发更改

时间:2016-05-12 13:31:42

标签: javascript jquery events select javascript-events

所以我有一个附加了变更事件的SelectList。当用户选择新选项时,它会通过getJSON方法(以及其他SelectLists)更新该列表。但是,当列表更新时,jQuery会将其视为一个更改并继续在无限循环中触发(更改,更新,重复)。

在列表中调用getJSON时,是否还有其他可以使用的事件或可以阻止更改事件触发的事件?

1 个答案:

答案 0 :(得分:0)

根据您提供的信息,您似乎有几个选择。

1)使用jQuery one()方法代替on(),这样您就可以在准备好再次开始侦听更改后添加侦听器。

2)您可以删除回叫,以防止在getJSON()来电之前发起回叫。然后在json响应返回后的回调中,将更改侦听器重新附加到select元素。这与上述方法非常相似,但可能更有效。

3)您也可以禁用select元素,直到调用getJSON()回调。这在您的更改侦听器中,如果在禁用select元素时触发它,您可以先检查它是否在运行逻辑之前被禁用。

如果您发布更多代码,那么我可以为您提供更具针对性的答案。如果有帮助,请告诉我。