我正在尝试弄清楚如何在insertBefore
$this = $(this);
var changeImageHTML = '<div class="sample1 sample2"> </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
感谢您的帮助。:)
尝试一下,您需要将单击处理程序送给目标元素,在您的案例点击事件中,却丢失了处理程序,因此丢失了事件。
$(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>
使用事件委托
$(document).on("click", ".sample1.sample2", function() {
alert("clicked")
})
var changeImageHTML = '<div class="sample1 sample2"> 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>