首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >YUI事件和链接

YUI事件和链接
EN

Stack Overflow用户
提问于 2009-09-10 21:35:40
回答 2查看 743关注 0票数 1

使用YUI,我有一个div,有一个附加的侦听器,它告诉我如果我单击div,就执行一个回调函数。在div内部是一系列指向其他页面的普通html链接。我想要发生的是,如果我点击一个链接,我就会转到那个页面。但是,如果我单击div中链接之外的任何位置,它就会执行回调函数。

实际发生的情况是,如果我单击div中的一个链接,它将执行div的回调函数,然后立即导航到链接的页面。

我知道如何防止我在div中的点击出现在文档上。但是,我如何获取一个常规的旧html链接,并阻止点击该链接触发div的click事件?我是否必须使用它们自己的回调将链接重新格式化为javascript链接,然后停止传播?或者,有没有更简单的方法?

艾米

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-10 22:06:38

Seth的想法是正确的,尽管在你的检查中更具体一点是一个好主意。

代码语言:javascript
运行
复制
YAHOO.util.Event.on("container", "click", function(e) {
    var tgt = YAHOO.util.Event.getTarget(e);

    if(tgt.nodeName.toLowerCase() !== 'a') {
        YAHOO.util.Event.preventDefault(e);

        console.log("Not an anchor!"); //TODO: REMOVE DEBUG OUTPUT
    }
});

我在http://tivac.com/yui2/amy_events.htm上构建了一个示例页面,以防您想要看到它的实际效果。

票数 3
EN

Stack Overflow用户

发布于 2009-09-10 22:00:50

您可以检查event.target上的tagName,如下所示:

代码语言:javascript
运行
复制
YAHOO.util.Event.addListener("container", "click", function(e) { 
  if (e.target.tagName == 'DIV') {
     // do something magical!
  }
}); 

但是,如果您最终将div放在锚标记中,则显然会破坏这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1407876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档