Javascript 使div内的所有链接调用相同的函数?
我正在尝试创建一个显示警报的通知区域Javascript 使div内的所有链接调用相同的函数?,javascript,jquery,Javascript,Jquery,我正在尝试创建一个显示警报的通知区域 return this.each(function() { jQuery('<div class="' + o['className'] + '">' + o.msg + ' + '<a href="#" onclick="$(this).parent().remove(); dismiss(' + o["id"] + ');">X</a>' + '</div>') .append
return this.each(function() {
jQuery('<div class="' + o['className'] + '">' + o.msg + ' +
'<a href="#" onclick="$(this).parent().remove(); dismiss(' + o["id"] + ');">X</a>' + '</div>')
.appendTo(this);
});
返回此.each(函数(){
jQuery(''+o.msg+'+
'' + '')
.附于(本);
});
这只需要从数据库中提取一条消息,并将其显示给用户。如果用户单击X,它将调用disclesh(),这将标记它为正在数据库中读取
问题是,如果消息本身包含指向另一个页面或外部站点的链接,我还想在用户离开页面之前调用dismise()。是否需要修改此javascript以获取所有
a
元素(X和消息中出现的任何链接)并更改onclick以调用函数?代码示例有点模糊,这o
来自何方?它是全局的还是特定于部门的
无论如何,你可能会发现这是有用的。初始化后,它将应用于与选择器匹配的所有未来新元素。您只需要有一些父元素,它将包含所有带有消息和链接的div
$('#someDivId a').live('click', function() {
// Do your thing here as you did in `onclick` attribute.
};
只需在onload期间执行一次即可。您可以稍微重新排列代码并使用,如下所示:
return this.each(function() {
var id = o["id"];
jQuery('<div />', { 'class': o['className'], html: o.msg })
.append('<a href="#">X</a>')
.delegate('a','click', function() { $(this).parent().remove(); dismiss(id); })
.appendTo(this);
});
返回此.each(函数(){
变量id=o[“id”];
jQuery(“”,{'class':o['className'],html:o.msg})
.append(“”)
.delegate('a','click',function(){$(this).parent().remove();dismise(id);})
.附于(本);
});
这使用了jQuery1.4中添加的新功能,使创建更干净(更快!文档片段缓存!)。它所做的不是在X上附加一个onclick,而是监听来自任何
锚定的点击。@Brandon-听起来你有一个古怪的角色,你是在谈论X
部分还是o.msg
部分?最糟糕的情况是,您可以删除,text:o.msg
并在链中添加.html(o.msg)
。o.msg部分。实际上,我给了X链接一个类来将它与消息链接分开(这样我就可以将它向右浮动),现在o.msg部分工作了。我真的不知道为什么。然而,我认为这不起作用。它在没有点击的情况下生成了链接。@Brandon-你不会在html中看到onclick
,它是一个事件处理程序,在代理函数中放置alert(id)
,看到它被点击。哦,我还必须将text:o.msg
更改为html:
。它也不喜欢类:
语法。@Brandon-Woops,任何不是jQuery调用的东西(例如'class'
)都需要引号,更新:)