YUI活动和链接

时间:2009-09-10 21:35:40

标签: javascript events yui

使用YUI,我有一个div,附加一个侦听器,说如果我点击div,就执行一个回调函数。 div内部是一系列与其他页面的正常html链接。我想要发生的是,如果我点击链接,我会转到该页面。但是,如果我点击链接外的div中的任何位置,它将执行回调函数。

实际上发生的是,如果我点击div中的链接,它会执行div的回调函数,然后立即导航到链接页面。

我知道如何让我在div中点击不要冒泡到文档。但是,我如何采用常规的旧HTML链接并停止点击它来解雇div的click事件?我是否必须将链接重新格式化为javascript链接与自己的回调,然后停止传播?或者,有更简单的方法吗?

艾米

2 个答案:

答案 0 :(得分:3)

Seth有正确的想法,但在你的支票中更具体一点是个好主意。

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建立了一个示例页面,以防万一你想看到它的实际效果。

答案 1 :(得分:1)

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

YAHOO.util.Event.addListener("container", "click", function(e) { 
  if (e.target.tagName == 'DIV') {
     // do something magical!
  }
}); 

如果你最终把一个div放在一个锚标签里面,那你就明白了。