Javascript 如何添加o';时钟事件使用jQuery追加html代码?

Javascript 如何添加o';时钟事件使用jQuery追加html代码?,javascript,jquery,html,Javascript,Jquery,Html,下面是我的代码试图添加一些html页面 $('#DocUploadDiv').append( '<div class="uploadClick" style="float:left; margin-right: 10px; margin-bottom: 10px">' + '<i class="fa fa-times fa-remove"></i>' + '<i class="fa fa-plus-circle fa-2x" o

下面是我的代码试图添加一些html页面

$('#DocUploadDiv').append(
    '<div class="uploadClick" style="float:left; margin-right: 10px; margin-bottom: 10px">' + 
    '<i class="fa fa-times fa-remove"></i>' +
    '<i class="fa fa-plus-circle fa-2x" onclick="$("#DocUpload").click()"></i>' + 
    '<div>'
);
$('#DocUploadDiv')。追加(
'' + 
'' +
'' + 
''
);
使用此jQuery代码时,我可以在页面上获得正确的div样式

但是,onclick事件不起作用


如何在使用jQuery追加html代码时添加onclick事件?

查看您的报价。你有

`'....onclick="$("#DocUpload").click()"...`
该属性在哪里结束?答复:这里:

`'....onclick="$("#DocUpload").click()"...`
// --------------^
因为这是打开
之后的第一个

您至少可以通过两种方式修复它:使用
'
并对其进行转义(因为这都是在一个由
'
分隔的字符串中):

或者,由于
onxyz
处理程序中的文本是HTML(尽管人们往往会忘记这一点),因此可以使用命名字符实体


但更好的是使用现代事件处理:

$(document).on("click", "#DocUploadDiv .trigger-upload", function() {
    $("#DocUpload").click();
});
  • 完全放弃
    onclick
    属性

  • 向该
    i
    元素添加语义类,例如
    trigger upload

  • 使用委托处理:

    $(document).on("click", "#DocUploadDiv .trigger-upload", function() {
        $("#DocUpload").click();
    });
    
  • 比这更好的是让两个元素调用相同的函数,而不是进行合成点击:

    function handleUpload() {
        // Do whatever you're doing in the #DocUpload click handler now
    });
    $("#DocUpload").click(handleUpload);
    $(document).on("click", "#DocUploadDiv .trigger-upload", handleUpload);
    
    甚至:

    $(document).on("click", "#DocUploadDiv .trigger-upload, #DocUpload", function() {
        // Do whatever you're doing in the #DocUpload click handler now
    });
    

    非常感谢。这真的很有帮助。
    $(document).on("click", "#DocUploadDiv .trigger-upload, #DocUpload", function() {
        // Do whatever you're doing in the #DocUpload click handler now
    });