2012-02-18 2 views
0

у меня есть этот скрипт на странице, где я хочу, чтобы загрузить файлскрипты не работают на функции нагрузки()

<SCRIPT type="text/javascript"> 
$(function() 
{   
     $("#storefront").click(function() { 
      alert("POTANGINA"); 
      $(".centerdiv").load("storefront_a.php"); 
     }); 

});    
</SCRIPT> 

и у меня есть этот скрипт на странице я хочу, чтобы загрузить (storefront_a.php)

<SCRIPT type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></SCRIPT> 
<SCRIPT type="text/javascript" src="http://cssglobe.com/lab/easypaginate/js/easypaginate.js"></SCRIPT> 
<script type="text/javascript"> 

    jQuery(function($){ 

     $('ul#items').easyPaginate({ 
      step:5 
     }); 

    });  

</script> 

<style> 
     #page li { 
      display: inline; 
      position: relative; 
      width: 11em 
      margin:10px; 
      padding:10px; 
     } 
     #page li li{ display: block; height: 1.5em;} 

</style> 


<div id = "page">  
<ul id="items"> 
    <li>Page 1</li> 
    <li>Page 2</li> 
    <li>Page 3</li> 
    <li>Page 4</li> 
    <li>Page 5</li> 
    <li>Page 6</li> 
    <li>Page 7</li> 
    <li>Page 8</li> 
    <li>Page 9</li> 
    <li>Page 10</li> 
    <li>Page 11</li> 
    <li>Page 12</li> 
    <li>Page 13</li> 
    <li>Page 14</li> 
</ul> 
</div> 

Когда я запустил storefront_a.php непосредственно с localhost, это сработало. но когда я вызываю его с помощью load(), он загружается, но javascript не работает. PLease помогите мне спасибо

+1

Пожалуйста переопределять вашу проблему. Какой JavaScript не работал? И «не работает», что ТОЧНО вы имеете в виду? –

+0

Любой конкретный браузер? – ShankarSangoli

+0

один прилагается не работает –

ответ

0

Если storefront элемент добавляется динамически, то click не будет работать, потому что Jquery не может прикрепить обработчик событий, если элемент не доступен на странице загрузки.

Вы должны в основном использовать delegate или on, чтобы добавить обработчики событий для динамически создаваемых элементов.

$(document).on("click", "#storefront", function() { 
    alert("POTANGINA"); 
    $(".centerdiv").load("storefront_a.php"); 
}); 

Вместо document вы можете указать родительский контейнер storefront элемента, который будет доступен на этой странице.

Отметьте, что on введено в jQuery ver 1.7. Если вы используете старую версию, то используйте delegate

$(document).delegate("#storefront", "click", function() { 
    alert("POTANGINA"); 
    $(".centerdiv").load("storefront_a.php"); 
}); 

Ссылки:

+0

это okey, чтобы прикрепить этот текст на storefront_a.php? будет ли он доступен? или я включу его в родителя? –

+0

Он должен работать, но лучше, если вы можете включить его на родительскую страницу. – ShankarSangoli

+0

okey я попробую, я вернусь. спасибо –

-1

включает в себя последние jQuery & использовать jQuery живой метод.

$("#storefront").live('click',function() {} 
+0

есть ли какие-либо функции для jquery, чтобы включить все прикрепленные скрипты. функция скрипта работает. но прикрепленный скрипт не работает. –

+0

a) Мы даже не знаем, где '# storefront' находится в документе. Если он никогда не уничтожается, нет причин, чтобы избежать '.click()'. b) '.live()' устаревает (время для нас перестает рекомендовать его для нового кода, особенно если вы также рекомендуете последний jQuery. Замена - $ (document) .on() '; однако - c) даже если это допустимо, '.live()' (а теперь '$ (document) .on()') считается плохой функцией. Лучше использовать '$ (listener) .on()' где прослушиватель - это селектор jQuery, представляющий ближайшего предка, который никогда не уничтожается. –

+0

хм .. да Грег, я согласен жить не рекомендуется. В последнем ядре jQuery его сопоставление с 'on'. –