使用JQuery单击“.x”类的Div时触发事件

时间:2011-08-11 22:34:26

标签: javascript jquery html css

JS:

$(".x").click(function()
    {
        alert("hello");
        return false;
    });


$("#otherdiv").html("<div class='x'>Drag and drop values on the right to create a pivot table.</div><br />");

CSS:

div.x
{
    background-color: white; 
    border: dotted 1px; 
    cursor: pointer;
    width: auto;
    float: left;
    position: absolute;
    top: 15%;
    left: 10%;
    padding: 10px;
}

当我点击“x”类的div时,没什么好开心的。

3 个答案:

答案 0 :(得分:6)

您无法使用click附加事件处理程序,因为您的<div>是动态添加的。 click方法仅适用于现有元素。您必须使用live [API Ref] delegate [API Ref] < / sup> 而不是。


更新:来自jQuery&#39; live文档:

  

从jQuery 1.7开始,不推荐使用.live()方法。使用.on() [API Ref] 附加事件处理程序。旧版jQuery的用户应优先使用.delegate() {。{1}}。

答案 1 :(得分:2)

我认为您需要使用jQuery .live()函数,该函数还会将事件附加到将来创建的所有元素。

http://api.jquery.com/live/

答案 2 :(得分:2)

在.x类div上使用委托在body或容器上:http://jsfiddle.net/MEEHN/

$('body').delegate('.x','click',function(){
   alert(1);
});

$('<div class="x">asd</div>').appendTo('body');