Jquery .click()函数在特定属性上,返回多个元素
jquery .click() function on specific attribute, returns multiple elements
我有一个问题与jquery和.click()函数,当点击一个<li data-link-url="...">
元素,共享data-link-url属性。
<nav class="fullListHover">
<ul>
<li class="oneHub">
<a href="... /suppliers/technology.html"></a>
<ul>
<li data-link-url="... /templateA.html">
<ul>
<li data-link-url="... /templateB.html"></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
这是jquery的click()函数
<script type="text/javascript">
$("[data-link-url]").click(function(){
window.location.href=$(this).attr("data-link-url")
});
</script>
当我点击标签与"…/templateB.html"我得到重定向到"…/templateA.html"。所以我调试了整个过程,并记录了$(this)变量。当我点击"…/templateB.html"时,输出是:
.../templateB.html
.../templateA.html
看起来,.click()函数会运行第二次。
如何只选择templatb或防止点击功能运行第二次?
注:我希望我的问题是可以理解的。英语不是我的母语。
您的问题是因为您嵌套了具有data-link-url
属性的li
元素,因此在事件冒泡DOM时,为层次结构中的每个元素调用一次单击处理程序。要解决这个问题,在事件处理程序中调用stopPropagation()
:
$("[data-link-url]").click(function(e) {
e.stopPropagation();
window.location.href = $(this).data('link-url');
});
相关文章:
- Jquery在刷新时返回元素的旧值
- 什么'这是返回元素的好方法's路径
- Javascript函数无法返回元素
- getElementById 不返回元素
- JQuery .index() 不返回元素的正确索引
- Lodash Javascript 基于唯一属性值返回元素
- 为什么随机选择算法在 Array[low] 时返回元素(低 === 高)
- scrollTop() 返回元素下方的位置
- Jquery 返回元素的 .width() 取决于元素的找到方式
- D3 按类选择元素并返回元素 ID
- 移除.append()以向其返回元素'的原始状态
- 如何在Selenium Python execute_script中获取返回元素的值
- jQuery find-返回元素的顺序是什么
- 使用jQuery Mobile时未能返回元素的width()
- 数组的递归返回元素
- XML getElementsByTagName在Safari中不返回元素
- JavaScript shift()方法是否返回元素的引用或副本?
- 是否有官方的w3c声明指出用户代理实际上必须以大写形式返回元素的标记名称?
- jQuery在PC上返回元素ID,在Android上返回'undefined'为什么
- 在承诺后从jQuery插件返回元素