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无法找到它们。
答案 0 :(得分:0)
find()
在load()
启动后立即运行,而不是在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");
});
});
}