2015-09-27 2 views
1

JQuery не найден ни одного нагруженных элементов после 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 не может их найти.

+0

Вы можете использовать 'нагрузки()' обратного вызова или лучше в вашем случае, делегат нажмите событие http://learn.jquery.com/events/event-delegation/ –

ответ

0

find() работает сразу после load()начинается, а не когда load() отделки. Вы можете поместить этот код в обратный вызов, чтобы он выполнялся после завершения загрузки.

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

.load (URL [, данные] [, полный])

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"); 
     }); 
    }); 
} 
+0

Спасибо! Это работает! – almark

Смежные вопросы