Jquery函数:如何避免同一按钮被重复触发点击
解决按钮重复触发点击的问题
你的问题根源是两个选择器存在重叠匹配:[id*='button_insert']会匹配所有ID包含button_insert的元素,自然也包含了ID是button_insert_movement的按钮,导致同一个按钮被两次click()调用触发。
可以用以下两种方法解决:
方法一:精准区分选择器
把第一个选择器改成只匹配**仅包含button_insert且不包含button_insert_movement**的元素,用:not()排除重叠项:
$("[id*='button_insert']:not([id*='button_insert_movement'])").click(); $("[id*='button_insert_movement']").click();
如果你的目标按钮ID就是精确的button_insert,直接用精确ID选择器更稳妥:
$("#button_insert").click(); $("[id*='button_insert_movement']").click();
方法二:合并选择器后去重触发
将两个选择器的结果合并,用.unique()移除重复DOM元素,确保每个按钮只被触发一次:
$("[id*='button_insert'], [id*='button_insert_movement']").unique().click();
另外你之前尝试的.one('click')和.stopPropagation()无效的原因:.one()是绑定事件时限制仅执行一次,而你是主动触发点击操作,不是绑定事件;.stopPropagation()是阻止事件冒泡,和重复触发点击本身无关。
内容的提问来源于stack exchange,提问作者Miguel
相关产品推荐
相关产品推荐

