我正在寻找一种在创建新元素时可以创建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>
答案 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