使用YUI,我有一个div,附加一个侦听器,说如果我点击div,就执行一个回调函数。 div内部是一系列与其他页面的正常html链接。我想要发生的是,如果我点击链接,我会转到该页面。但是,如果我点击链接外的div中的任何位置,它将执行回调函数。
实际上发生的是,如果我点击div中的链接,它会执行div的回调函数,然后立即导航到链接页面。
我知道如何让我在div中点击不要冒泡到文档。但是,我如何采用常规的旧HTML链接并停止点击它来解雇div的click事件?我是否必须将链接重新格式化为javascript链接与自己的回调,然后停止传播?或者,有更简单的方法吗?
艾米
答案 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放在一个锚标签里面,那你就明白了。