2012-01-02 51 views
1

如何预先添加到特定的从$(this)后缀的类,例如我只是想,预先准备这实际上是在这个例子中点击股利...

<div> 
<div class='target'></div> 
</div> 

<div> 
<div class='target'></div> 
</div> 



$('div').click(function(){ 
    $('<div>hello</div>').prependTo('.target'); 
}); 

回答

3

只有挂钩相关的div,那么处理程序中使用this(但也请看下面,我能读懂你的问题两种方式):

$('div.target').click(function(){ 
    $('<div>hello</div>').prependTo(this); 
}); 

在通过jQuery迷上了事件处理程序,this是指你大呼过瘾的处理程序接收该事件的具体DOM元素。有关详细信息,请参见bindon文档。

Live example(也有})在最后逆转,导致一个语法错误。)

如果你的目标是有一个点击格前插任何地方的目标股利前,它更像是这样的:

$('div').click(function(){ 
    // Look for "target" divs within this div 
    var target = $(this).find("div.target"); 

    // Did we find any? 
    if (target[0]) { 
    // Yes, prepend to it/them 
    $('<div>hello</div>').prependTo(target); 

    // And stop the event 
    return false; 
    } 
}); 

Live example有我们再次使用this,但是这一次,我们用它来找出是否div事件已传播到包含div与“目标”类。如果是这样,我们会预先安排您的“hello”div,并通过return false;停止活动(您可以使用event.stopPropagation();代替)。

+0

它不会工作,因为右括号“)}”被颠倒。 – 2012-01-02 17:15:22

+0

@ dku.rajkumar:我指出了。 – 2012-01-02 17:16:09

+0

cooooooool ...... – 2012-01-02 17:23:00

0
$('div.target').click(function(){ 
    $('<div>hello</div>').prependTo($(this)); 
}); 

右括号中有一个错误。你给)},它应该是})

小提琴:http://jsfiddle.net/8SrAW/

1

或者,您也可以先选择这一点,并在前面加上它,像:

$('div.target').click(function(){ 
    $(this).prepend('<div>hello</div>'); 
}); 

更新:您必须添加点击到目标,而不是所有的divs,否则你会有双重事件。