jQuery 在 jQuery.load() 之后找不到任何加载的元素

jQuery don't find any loaded elements after jQuery.load()

jQuery 在 jQuery.load()

之后找不到任何加载的元素
function makeEditForTextBox(textbox,editor) {
    editor.load("templates/textbox-edit.html");
    editor.find("#edit-save").click(function(event) { //here jQuery can't find #edit-save button
       id=editor.find("#edit-id-name").text();
       alert(id);
       textbox.find("input").attr("id",id);
       textbox.find("input").attr("name",id);
       textbox.find("input").attr("placeholder",editor.find("#edit-placeholder").text());
       textbox.find("label").text(editor.find("#edit-label-text"));
       alert("save clicked");
   });
   alert("loaded");
}

文本框-edit.html:

<label>ID/Name</label>
<input type="text" id="edit-id-name">
<label>Label Text</label>
<input type="text" id="edit-label-text">
<label>Placeholder</label>
<input type="text" id="edit-placeholder">
<label>Help Text</label>
<input type="text" id="edit-help-text">
<button id="edit-save">Save</button>
<button id="edit-cancel">Cancel</button>

我已经在浏览器中加载了元素,但是 jQuery 找不到它们。

find() 是 运行 在 load() 开始 之后,而不是 load() 结束时。您可以将该代码放入回调中,以便在加载完成时执行。

http://api.jquery.com/load/

.load( url [, data ] [, complete ] )

function makeEditForTextBox(textbox,editor) {
    editor.load("templates/textbox-edit.html", function(){
        editor.find("#edit-save").click(function(event) { 
           id=editor.find("#edit-id-name").text();
           alert(id);
           textbox.find("input").attr("id",id);
           textbox.find("input").attr("name",id);
           textbox.find("input").attr("placeholder",editor.find("#edit-placeholder").text());
           textbox.find("label").text(editor.find("#edit-label-text"));
           alert("save clicked");
       });
    });
}