2010-02-01 2 views
0

Мой сайт содержит ссылки, и когда я нажимаю на клик, целевой HTML-контент загружается в «div» с использованием JQuery, пока не проблема.Javascript не будет выполняться после загрузки

Моя проблема в том, когда моя страница поиска ниже загружается в третий раз, сценарий не будет выполняться:

<h1><span>Search</span></h1> 
<p class="bigtext">Entity</p> 
<input type="text" id="searchfield"> 
<p class="more"> 
    <a href="#">Find</a> 
</p> 
<p></p> 
<div id="res"></div> 

<script type="text/javascript"> 
    alert("hello"); 
</script> 

Заметим, что скрипт работает для первых двух раз, но не в третий раз. Я также пытался изменить позицию и т. Д., Но никаких позитивных результатов. Проблема возникает только для страницы поиска, загружается содержимое HTML, я также вижу скрипт с использованием Firebug, но он не будет выполнять alert().

Мой общий сценарий нагрузки в-ДИВ это:

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    var page = "blog"; 

    $('a').click(function() 
    { 
     var id = $(this).attr("id"); 
     if (id != null && id !="") 
     { 
      page = "index.php/"+id; 
      $("#inc").load(page); 
     } 
    }); 

    setInterval(function() { 
     if (page=="index.php/toplist") 
      $("#inc").load(page); 
    }, 6000); 
}); 
</script> 

Любые предложения о том, как решить эту проблему? Заранее спасибо.

// Hirre

+0

Вы пытаетесь использовать другие браузеры? Те же результаты? – rsilva4

+0

такие же результаты ... – 2010-02-01 12:05:00

ответ

2

Загрузка HTML с <script> элементов в страницу, в основном ненадежными. jQuery предпринимает несколько шагов, чтобы заставить работать кросс-браузер, но в некоторых случаях jQuery терпит неудачу.

Так что не полагайтесь на него. Сохраните содержимое скрипта в базовом скрипте, запустите его после обратного вызова после загрузки, если это необходимо.

+0

Можете привести пример, пожалуйста. – 2010-02-01 13:58:59

+0

Это зависит от того, что делает ваш код. Для основного случая, описанного выше, было бы легко сделать предупреждение в обратном вызове: '$ (" # inc "). Load (page, function() {alert ('hello!');});'. – bobince

+0

проблема решена :) – 2010-02-01 14:38:35

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