选择动态创建的元素,不带任何事件

时间:2018-04-13 09:17:37

标签: jquery

我想选择动态创建的多个元素(each)。

我知道我能做到:

$('body').on('click', '.dynamically-created-element', function () {
    // do stuff
});

问题是我这里没有任何事件。

第二个问题是我需要使用each

所以我希望代码看起来像这样:

$('body').on('ready', '.all-dynamically-created-elements', function () {
    forEachElemet(function () {
        // do stuff
    });
});

这可能吗?

3 个答案:

答案 0 :(得分:0)

原始回答链接: How to set click event on all div with same class



 

    $(".dynamically").on("click", function(e){
        //your code here..
        console.log("div with class 'card' clicked!");

        e.preventDefault(); //to prevent any other unwanted behavior clicking the div might cause
    });

 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<style>
.dynamically  {
 color : red
}
</style>
<div class="dynamically" > div 1</div>
<div class="dynamically" > div 2</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你有这个方法......

您将捕获动态创建元素中的每次点击,您将获得事件对象。

/User/ImageController@update

答案 2 :(得分:0)

在添加动态元素并且准备时使用动态元素循环的一个选项正在使用.promise().done()

&#13;
&#13;
var newHTML = "<p class='dynamic-parag'>Par 1</p><p class='dynamic-parag'>Par 2</p><p class='dynamic-parag'>Par 3</p>";

$("div").html(newHTML).promise().done(function() {

  //Looping thru the dynamic <p class='dynamic-parag'> after they are added
  $('.dynamic-parag').each(function() {
    console.log($(this).text());
  });

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>
&#13;
&#13;
&#13;