在创建新元素时创建jQuery

时间:2016-09-02 09:12:27

标签: javascript jquery html

我正在寻找一种在创建新元素时可以创建jquery脚本的方法。

这是我做过的事情

<div id = "content">
content
</div>

<script>
$('#content').click(function(event) {
  $('#content').append('<div id='+ Math.floor((Math.random() * 100) + 1) +'> 123 </div>');
});

// dynamically create click function? 
$('#randomNumber').click(function(event) {
    console.log("Random id");
});
</script>

3 个答案:

答案 0 :(得分:2)

您不需要,因为您可以使用适用于您当前和未来元素的.on(),如下所示:

$("#content").on("click", "div", function() {
    console.log(this.id);
});

这实际上为click内部存在或不存在的所有div创建了#content处理程序,并且处理程序记录id的{​​{1}}。< / p>

的另一个处理程序
this

创建此类$('#content').click(function(event) { $('#content').append('<div id='+ Math.floor((Math.random() * 100) + 1) +'> 123 </div>'); }); 。请确保您不会复制div,因为这会导致invalid HTML,这会在搜索引擎优化得分时受到惩罚。

答案 1 :(得分:1)

尝试:

$('#content').click(function(event) {
  var randDiv = $('<div id='+ Math.floor((Math.random() * 100) + 1) +'> 123 </div>').appendTo('#content');
  // dynamically create click function? 
  randDiv.click(function(event) {
    console.log("Random id");
  });
});

答案 2 :(得分:0)

您需要创建一个生成类似随机数的函数:

function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}

当你附加一个带有随机id的新div时使用它。

编辑:这是一个jsbin https://jsbin.com/cimusoxale/edit?html,js,console,output