所以我有一个附加了变更事件的SelectList。当用户选择新选项时,它会通过getJSON方法(以及其他SelectLists)更新该列表。但是,当列表更新时,jQuery会将其视为一个更改并继续在无限循环中触发(更改,更新,重复)。
在列表中调用getJSON时,是否还有其他可以使用的事件或可以阻止更改事件触发的事件?
答案 0 :(得分:0)
根据您提供的信息,您似乎有几个选择。
1)使用jQuery one()
方法代替on()
,这样您就可以在准备好再次开始侦听更改后添加侦听器。
2)您可以删除回叫,以防止在getJSON()
来电之前发起回叫。然后在json响应返回后的回调中,将更改侦听器重新附加到select元素。这与上述方法非常相似,但可能更有效。
3)您也可以禁用select元素,直到调用getJSON()
回调。这在您的更改侦听器中,如果在禁用select元素时触发它,您可以先检查它是否在运行逻辑之前被禁用。
如果您发布更多代码,那么我可以为您提供更具针对性的答案。如果有帮助,请告诉我。