使用 YUI,我有一个 div,带有一个附加的监听器,如果我单击 div,则执行回调函数。 div 内部是一系列指向其他页面的普通 html 链接。我想要发生的是,如果我单击一个链接,我会转到该页面。但是,如果我在链接外的 div 中的任何地方单击,它都会执行回调函数。
实际发生的情况是,如果我单击 div 中的链接,它会执行 div 的回调函数,然后立即导航到链接页面。
我知道如何防止我在 div 中的点击冒泡到文档。但是,我如何获取常规的旧 html 链接并阻止点击该链接触发 div 的点击事件?我是否必须将链接重新格式化为带有自己的回调的 javascript 链接,然后停止传播?或者,有更简单的方法吗?
艾米
最佳答案
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 构建了一个示例页面以防万一你想看到它的实际效果。
关于javascript - YUI 事件和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1407876/