【问题标题】:jQuery prevent change from firing when SelectList is updated with new values当使用新值更新 SelectList 时,jQuery 防止更改触发
【发布时间】:2016-05-12 13:31:42
【问题描述】:
我有一个SelectList,它附加了一个更改事件。当用户选择一个新选项时,它会通过getJSON 方法(以及其他SelectLists)更新该列表。但是,当列表更新时,jQuery 将其视为更改并在无限循环中不断触发(更改、更新、重复)。
当getJSON 在列表中被调用时,我是否可以使用其他事件或阻止更改事件触发?
【问题讨论】:
标签:
javascript
jquery
events
jquery-events
selectlist
【解决方案1】:
仅从您提供的信息来看,您似乎有几个选择。
1) 使用 jQuery one() 方法而不是 on() 这样您就可以在准备好再次开始侦听更改后重新添加侦听器。
2) 您可以删除回调以防止它在您的 getJSON() 调用之前触发。然后在 json 响应返回后的回调中,将更改侦听器重新附加到您的选择元素。这与上述方法非常相似,但可能需要更多工作。
3) 您也可以在调用getJSON() 回调之前禁用选择元素。这在您的更改侦听器中,如果它在选择元素被禁用时被触发,您可以在运行逻辑之前先检查它是否被禁用。
如果您发布更多代码,那么我可以为您提供更量身定制的答案。让我知道这是否有帮助。