Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery中创建DOM之前绑定事件 var-thumbDom=''; 对于(变量i=0;i_Javascript_Jquery_Events_Append - Fatal编程技术网

Javascript 在jQuery中创建DOM之前绑定事件 var-thumbDom=''; 对于(变量i=0;i

Javascript 在jQuery中创建DOM之前绑定事件 var-thumbDom=''; 对于(变量i=0;i,javascript,jquery,events,append,Javascript,Jquery,Events,Append,我知道代码不能工作,因为事件是在dom追加之前绑定的。 但是,在附加到dom树之前,是否仍然可以将click事件绑定到许多动态dom 我不想使用$(文档)。在('单击,…)上,我想将事件绑定到子节点 任何建议都会有帮助,谢谢~ 您可以尝试以下方法: 定义一个 设置其id和innerHtml 用一个onclick事件绑定它(提醒它的id) 将其附加到“#父项”项 $(函数(){ 对于(变量i=0;i

我知道代码不能工作,因为事件是在dom追加之前绑定的。 但是,在附加到dom树之前,是否仍然可以将click事件绑定到许多动态dom

我不想使用$(文档)。在('单击,…)上,我想将事件绑定到子节点

任何建议都会有帮助,谢谢~


您可以尝试以下方法:

  • 定义一个
  • 设置其
    id
    innerHtml
  • 用一个
    onclick
    事件绑定它(提醒它的
    id
  • 将其附加到“#父项”项

$(函数(){
对于(变量i=0;i<10;i++){
$("")
.attr(“id”,“div-”+i)
.html(“DIV-”+i)
。单击(函数(){
警报($(this.attr(“id”));
})
.附于(“母公司”);
}
});

我不想使用$(document)。在('单击,…)上,我想将事件绑定到子节点。
为什么?事件委派正是这里要使用的模式。在
之后调用
bindEvent
。append
但是@rorymcrossan是正确的,因为我找不到任何理由来避免这种模式。。。
var thumbDom = '';

for (var i = 0; i < 10; i++) {
  thumbDom = thumbDom + '<div id = "div-" ' + i + '>DIV-'+ i +'</div>';
  bindEvent(i);
}

$('#parent').append(thumbDom);


function bindEvent(i){
  $('#div-' + i).click(function(event) {
        alert(i);
  });
}
$(function() {
    for (var i = 0; i < 10; i++) {
        $("<div></div>")
            .attr("id", "div-" + i)
            .html("DIV-" + i)
            .click(function() {
                alert($(this).attr("id"));
            })
            .appendTo("#parent");
    }
});