2016-09-28 135 views
0

我動態appedning一個div。觸發div點擊

$('#parent').append('<div id="sub"></div>'); 

我怎樣才能觸發這個DIV click事件(#go)被點擊時的圖像?

HTML

<img id="go" src="img.png" /> 
<div id="parent"></div> 

JS

$('#go').on('click',function(){ 
    //console.log("test1"); 
    $("#sub").click(); 
}); 
+0

你到底想幹什麼? – yeshansachithak

+0

你把事件處理程序掛鉤到了'#sub'嗎?除非您使用奇特的事件委派,否則在將元素附加到DOM之後,它必須被附加。 – haliphax

回答

2

這應該工作...增加了一個處理程序來驗證...

$('#parent').append('<div id="sub"></div>') 
 
$('#go').on('click', function() { 
 
    $("#sub").click(); 
 
}) 
 

 
$('body').on('click', '#sub', function(e) { 
 
    console.log('sub clicked') 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<img id="go" src="https://i.stack.imgur.com/wPE0C.jpg?s=48&g=1" /> 
 
<div id="parent"></div>

注:點擊#sub也觸發事件

0

使用觸發方法$("#sub").trigger('click'); 觸發()方法觸發所選元素指定事件和事件(如表單提交)的默認行爲。

0

使用trigger()

$('#go').on('click',function(){ 
    $('#parent').find("#sub").trigger('click'); 
}); 

,確保爲#sub click事件被委派

$('#parent').on('click','#sub',function(){ 
//some code here 
}); 
+0

由於'#sub'被引用爲ID,因此不需要使用'.find()'。您可以使用'$('#sub')'代替。 – haliphax

0

使用event.preventDefault(),然後再觸發點擊: $('#go').on('click',function(){ event.preventDefault(); $("#sub").click(); });

0

當然你只是爲了將點擊功能綁定到#sub div。
結帳this小提琴