2012-01-02 36 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,否則你會有雙重事件。