我有一些使用jquery创建的标签,我想添加新标签。我正在使用的方法是给锚点提供一个“扩展”类,我想创建一个新选项卡并删除它们的默认功能。然后我将内容加载到新创建的div中。问题是加载ajax的内容中的类“扩展”锚点不会继承此特定行为。感谢任何帮助。谢谢。 代码:
$(function(){
$("#tabs").tabs();
$("a.extend").click(function(event) {
event.preventDefault();
var $name=$(this).attr("name");
var $link=$(this).attr("href");
$("#tabs").tabs("add", "#"+$name,$(this).attr("name"));
$("#"+$name).load($link);
//$(".extend").click(function(event){ event.preventDefault();}); this didn't fix it
});
});
答案 0 :(得分:0)
最简单的方法是使用jQuery的“.delegate()”来处理“点击”事件:
$('body').delegate('a.extend', 'click', function(event) {
// your code here, as in your question
});
这会在<body>
标记上放置一个等待“点击”事件冒泡的事件处理程序,然后对于那些实际目标元素为<a>
并且类为“extend”的人,它会调度到处理程序。这适用于最初的<a>
元素以及稍后添加的元素。
您不必将处理程序放在<body>
标记上;你可以将它放在包含锚点的任何方便的父元素上。
“。devgate()”函数就像“.live()”函数一样,但我个人更喜欢它,因为它更灵活,更像“jQuery”,效率更高。