动态生成的链接上的jQuery事件

动态生成的链接上的jQuery事件,jquery,dynamic,click,hyperlink,bind,Jquery,Dynamic,Click,Hyperlink,Bind,我有一个链接列表,这些链接是由另一个函数动态创建的,它们以test等形式出现 我试图将这些链接作为目标,并将单击/鼠标悬停事件绑定到它们。以下是针对这些linkhi-1之一的代码: $(function() { $("#hi-1") .bind("mouseover", highlight); $("#hi-1") .bind("mouseleave", highlight); $("#hi-1") .bind("click", highlight);

我有一个链接列表,这些链接是由另一个函数动态创建的,它们以test等形式出现

我试图将这些链接作为目标,并将单击/鼠标悬停事件绑定到它们。以下是针对这些linkhi-1之一的代码:

$(function() {

    $("#hi-1") .bind("mouseover", highlight);
    $("#hi-1") .bind("mouseleave", highlight);
            $("#hi-1") .bind("click", highlight);

    });
    function highlight(evt){
    $("p#p-1").toggleClass("highlighted");
    }
这将切换的类名

我似乎无法让它工作,我相信这可能与链接是动态创建的事实有关。然而,我几乎没有jQuery的经验,我可能会走错方向


非常感谢您的帮助。

您应该使用jquery的.live方法

现在和将来,为与当前选择器匹配的所有元素将处理程序附加到事件

例如:

$('.clickme').live('mouseover', function() {
    // live handler called
});

您应该使用jquery的.live方法

现在和将来,为与当前选择器匹配的所有元素将处理程序附加到事件

例如:

$('.clickme').live('mouseover', function() {
    // live handler called
});
试一试

试一试


选择器在创建时应用。选择元素,然后绑定到这些元素,而不是选择器

但是,您可以使用事件冒泡—子元素上的事件会通知祖先元素。jQuery为此提供了漂亮的语法,包括:

这假设containerElement是将要匹配的所有元素的祖先元素


但是,如果您只有一个元素(如通过给它一个ID所建议的),那么在创建元素时绑定处理程序可能会更容易。

选择器在创建时应用。选择元素,然后绑定到这些元素,而不是选择器

但是,您可以使用事件冒泡—子元素上的事件会通知祖先元素。jQuery为此提供了漂亮的语法,包括:

这假设containerElement是将要匹配的所有元素的祖先元素


但是,如果您只有一个元素,正如通过给它一个ID建议的那样,那么在创建元素时简单地绑定处理程序可能会更容易。

这对我来说很有效,我无法理解。委托。太好了,谢谢你这对我来说很有效,我没法动脑,代表。太好了,谢谢
$('#containerElement').delegate('#hi-1', 'click mouseover mouseleave', highlight);