Код, возвращаемый из скрипта, не обнаруженный jquery

#php #jquery

#php #jquery — jquery — запрос #jquery

Вопрос:

По сути, у меня есть контейнер div, который я повторно использую для заполнения различными данными, в зависимости от ссылки, на которую нажимают.

Этот контейнер div имеет имя класса «test_bed», а якоря, используемые для его заполнения, имеют имена классов «linkA», «linkb» и т.д.

 $(document).ready(function(){
  $("a.link").click(function(e) {   
    //prevent default behaviour:
    e.preventDefault();
    var a = "a";
    var b = "b";
    //pass vars to script:
    $.post('00_php_script_.php', { x:a , y:b },
    function(output){
      //Replace div content with script output:
      $('div#test_bed"').html(output).show();
    });
  });
});
  

Это один из якорей «linkA», как упоминалось выше:

 <a href="" id="linkA" name="linkA" class="linkA">LinkA</a>
  

Все, что делает php-скрипт, это повторяет переменные вместе со ссылкой:

 echo $_POST['x'] . " " . $_POST['y'] . " " . '<a href="" id="linkA" name="linkA" class="linkA">LinkA</a>';
  

Все работает нормально, за исключением того факта, что ссылка, которая возвращается из php-скрипта в test_bed div, похоже, не обнаруживается приведенным выше кодом jquery.

ВОПРОС:

Как мне сделать так, чтобы код, возвращаемый из php-скрипта, был обнаружен приведенным выше кодом jquery??

Любая помощь ценится ребятами….

Комментарии:

1. Что именно вы подразумеваете под «обнаруженным»? Появляется ли «ЛинкА»?

2. Появляется ссылка, но при нажатии на нее она ведет себя не так, как описано в приведенной выше функции, она просто действует как ссылка по умолчанию.

3. Когда в DOM добавляется новый элемент, к нему автоматически не применяются прослушиватели. Вы должны использовать .live() или .delegate() , или применить обработчик к добавленной ссылке.

4. Вы применяете обработчик событий jQuery к чему-то, что еще не существует.

Ответ №1:

Появляется ссылка, но при нажатии на нее она ведет себя не так, как описано в приведенной выше функции, она просто действует как ссылка по умолчанию.

Это связано с тем, что когда вы определяете click() событие, определение применяется только к тем элементам, которые в настоящее время существуют в документе, а не к будущим.

Взгляните на .live() , чтобы найти обходной путь. http://api.jquery.com/live /

Ответ №2:

 $("a.link").live('click', function(e) {