2012-04-01 6 views
0

У меня есть вопрос о загрузке jQuery лучшей практики. Представьте себе следующую ситуацию:jQuery load best practice

$("#div").on('click', function() { 
$('#result').load('test.html'); 
}); 

код работает отлично, метод загрузки выполняется, но теперь загруженное содержимое не может быть доступен плагин JQuery. Я решил вот так:

$("#div").on('click', function() { 
$('#result').load('test.html', function(){ 
$('.element').plugin(); 
}); 
}); 

Мой вопрос прост, есть ли лучший способ решить эту ситуацию?

+1

Да. Используйте '$ .on()'. Хотя я не совсем уверен, что означает «невозможно получить доступ» - плагин может получить к нему доступ, как и любой другой элемент после его загрузки. – JJJ

ответ

2

В идеале вы должны были бы нацелены на parent элемента с id="div" ... скажем контейнер <div id="wrap"> для этого примера. Затем с помощью .on() используя parent контейнер, как селектор, как:

$("#wrap").on("click", "#div", function() { 
$('#result').load('test.html'); 
}); 

то загруженный контент может быть доступен вашим другой плагин.

Этот формат использования .on() фактически заменен .live() с jQuery v1.7.x.

В конце концов, вы могли бы также сделать

$("body").on("click", "#div", function() { 
$('#result').load('test.html'); 
}); 
2

Вы делаете это правильно. ваш код для вызова метода плагина будет выполняться только после того, как загрузка завершит загрузку в div. Так что тебе хорошо идти.

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

$(function(){ 
    $("#div").on('click', function() { 
     $('#result').load('test.html', function(){ 
      $('.element').plugin(); 
     }); 
     });  
}); 

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

  • Нет связанных вопросов^_^