insertBefore之后的jQuery触发器点击

时间:2016-06-21 06:47:29

标签: javascript jquery

我正试图找出如何在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 - &gt;我试图触发的一类特定插件。

版本:jQuery 2.1

感谢您的帮助。 :)

2 个答案:

答案 0 :(得分:1)

尝试一下,你需要给目标元素一个点击处理程序,在你的情况下调用click事件但是缺少handler,所以事件就丢失了。

$(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 :(得分:1)

使用event delegation

&#13;
&#13;
$(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');
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>div</div>
&#13;
&#13;
&#13;