2016-06-21 154 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>