Инициирование поведения при загрузке в возвращаемых данных AJAX - PullRequest
4 голосов
/ 04 августа 2010

Мы с другом просматриваем веб-сайт с кнопкой, которая выполняет вызов AJAX, который при успешном возврате загружает HTML в указанный тег DIV и вызывает функцию Javascript.Проблема в том, что он будет работать только дважды.После двойного щелчка он не работает должным образом.Мы пытаемся динамически контролировать, что вызвана функция ready ().

Вот простой случай:

<html>
<head>
<script type="text/javascript" src="jquery-1.4.1.js"> </script>
<script type="text/javascript">
$(function(){
  $("#trigger").click(
    function(){
     $("#target").load('load.html');
    }
  );
});
</script>
</head>
<body>

<div id="target" style='width:200px;height:200px;border: 1px solid black'>
Not Loaded
</div>
<input type="button" value="Load AJAX" id="trigger" />
</body>
</html>

load.html содержит:

<script type="text/javascript">
$(function(){
  alert('loaded stuff');
});
</script>
loaded

Вот образец: http://phoenixillusion.net/demos/ajax/

Спасибо!РЕДАКТИРОВАТЬ Забыл разместить информацию о содержимом load.html

Ответы [ 3 ]

1 голос
/ 04 августа 2010

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

0 голосов
/ 04 августа 2010

Попробуйте вместо этого поместить код javascript в основную программу:

<script type="text/javascript">
$(function(){
  $("#trigger").click(
    function() {
      $("#target").load('load.html', function() {
        alert('Loaded');
      });
    }
  );
});
</script>
0 голосов
/ 04 августа 2010

Фактически каждый раз он выполняет вызов для загрузки, хотя, по-видимому, этого не происходит, поскольку всплывающее окно не появляется после 2-х нажатий.

Используйте консоль типа chrome или firebug и следите за XHR при каждом щелчке, который вы будете видеть при каждом щелчке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...