Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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
Jquery 加载div标记后添加函数_Jquery_Html - Fatal编程技术网

Jquery 加载div标记后添加函数

Jquery 加载div标记后添加函数,jquery,html,Jquery,Html,如果我有一个div标签,说 <div id="main" style="display:none"></div> 当用户单击图像时,必须执行某些功能 这个函数必须在加载div标记后加载,因此我考虑这样做 $("#main").load(function() { $('#tu').click(function() { alert("asd"); }); }); 但这不起作用。将更改为您应该使用最近的静态容器来委派图像的单击事件。在没有看到相关

如果我有一个div标签,说

<div id="main" style="display:none"></div>
当用户单击图像时,必须执行某些功能 这个函数必须在加载div标记后加载,因此我考虑这样做

$("#main").load(function() { 

    $('#tu').click(function() {
    alert("asd");
    });
});

但这不起作用。

更改为

您应该使用最近的静态容器来委派图像的单击事件。在没有看到相关代码的情况下,我打赌
#main
是最接近的静态容器:

$('#main').on('click', '#tu', function(){
    alert("asd");
});
否则,您仍可以将其委托给
文档
级别:

$(document).on('click', '#tu', function () {
    alert("asd");
});

使用委派,您不需要在添加图像后进行设置,您可以在DOM(1)中的
#main
可用时进行设置,或者在任何时候使用
文档(2)进行设置。

如果在文档加载完成时图像已经可用,那么为什么不执行以下操作:

$(function() {
    $('#tu').click(function() {
        alert("asd");
    });
});
如果在
#main
可见时加载图像,则可以在该时间点附加处理程序,执行如下操作:

$(function() {
    $('#someButton').click(function() {
        $("#main").append('<img src="a.png" id="tu" />');
        $('#tu').click(function() {
            alert("asd");
        });

        $("#main").show();
    });
});
$(函数(){
$(“#someButton”)。单击(函数(){
$(“#main”)。追加(“”);
$('#tu')。单击(函数(){
警报(“asd”);
});
$(“#main”).show();
});
});

很抱歉,这是一个输入错误。DIV没有任何onload事件,onload事件没有冒泡^^ Wolff说,DIV立即加载,没有加载事件。
$(function() {
    $('#someButton').click(function() {
        $("#main").append('<img src="a.png" id="tu" />');
        $('#tu').click(function() {
            alert("asd");
        });

        $("#main").show();
    });
});