jquery. загрузить кошмар - PullRequest
0 голосов
/ 26 апреля 2011

после того, как я делаю .load (somefile.php), остальная часть кода js должна быть выполнена, если только он не находится в .load (функция somefile.php () {некоторый код здесь}).это также проблема в успехе $ .ajax или полной функции.когда внутри это работает, а когда снаружи это не работает.это небольшой тестовый скрипт.

$(document).ready(function(){
  $("#loadData").click(function(){
    $(this).text("...One Moment Please...");
     $("#container").
       append('<div id="favoriteFiles"></div>').
       load("data.php ul#favoriteFiles", function(){$("#loadData").remove();});
   });
   ///this part is not working when outside of .load function
   /// when inside it is working
   $("li").click(function(){
      $(this).hide();
   });
});
//data.php looks like this
<ul id="favoriteFiles">
<li style="font-weight: bold; list-style-type: none;">My favorite files</li>
<li>Contact.php</li>
<li>second.doc</li>
<li>test.php</li>
<li>a.test.ini</li>
</ul>

, поэтому я спрашиваю вас, ребята, как это возможно и как я могу это исправить, потому что глупо помещать все в функции .success, .complete или .load.

пожалуйста, у кого-нибудь есть идеи?это просто простой пример.Мне нужен jquery .load на полностью другом примере.но принцип тот же.

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011

Если li добавляются как часть события загрузки, вам нужно либо использовать функции jquery live, либо deligate, либо прикреплять события в момент их добавления в dom. Это связано с тем, что при стандартном событии щелчка он только присоединяет обработчик к существующим событиям. Live или делегат прикрепит обработчик к любому выходу или будущему событию.

$("li").live("click",function(){
      $(this).hide();
   });
0 голосов
/ 27 апреля 2011

Да :) это работает. Также я обнаружил, что

.live({function(
 click: function() {} //etc 
)}) 

тоже делает работу:)

спасибо в любом случае:)

0 голосов
/ 27 апреля 2011

Что-то вроде этого может быть?

$(document).ready(function(){
  var onDataLoad = function() {
    $("#loadData").remove();
    $("li").click(function(){
      $(this).hide();
    });
  };

  $("#loadData").click(function(){
    $(this).text("...One Moment Please...");
     $("#container").
       append('<div id="favoriteFiles"></div>').
       load("data.php ul#favoriteFiles", onDataLoad);
   });         
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...