2016-06-21 92 views
0

後,我試圖找出如何觸發click事件之後insertBeforejQuery的觸發點擊的insertBefore

$this = $(this); 
var changeImageHTML = '<div class="sample1 sample2">&nbsp;</div>'; 

//attempt 1 
$(changeImageHTML).insertBefore($this).trigger('click'); 

//attempt 2 
$(changeImageHTML).insertBefore($this).find('.sample2').trigger('click'); 

//attempt 3 
$(changeImageHTML).insertBefore($this).find('.sample1.sample2').trigger('click'); 

//attempt 4 
$(changeImageHTML).insertBefore($this).bind('click').trigger('click'); 

.sample2 - >一類特定的插件,我試圖觸發。

版本:jQuery 2.1

感謝您的幫助。 :)

+0

是什麼$這個? –

+0

什麼?你知道'insertBefore()'方法做什麼嗎?究竟是怎麼回事? – Jai

+0

@Jai使用'insertBefore'有什麼問題? – undefined

回答

1

嘗試,你需要給目標元素的點擊處理程序,在你的情況下點擊事件被調用,但處理程序丟失,所以事件丟失。

$(document).ready(function(){ 
 
$this = $("div.container"); 
 
    var changeImageHTML = "<div class='sample1 sample2' onclick='test()'>test</div>"; 
 
    $(changeImageHTML).insertBefore($this).click() 
 
}) 
 
function test(){ 
 
    alert("ok") 
 
    }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container">Container</div>

1

使用event delegation

$(document).on("click", ".sample1.sample2", function() { 
 
    alert("clicked") 
 
}) 
 

 
var changeImageHTML = '<div class="sample1 sample2">&nbsp;sample</div>'; 
 
var $this = $("div"); 
 

 
$(changeImageHTML).insertBefore($this).trigger('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>div</div>