2016-04-09 28 views
0

Bazı HTML kodlarını $.ajax işleviyle bir div'a yüklerim. ama ben <body> içinde sahip olduğum betik çalışmıyor, lütfen bana yardımcı olabilir misiniz, benim için çok önemli.Ajax yanıtında komut dosyası yürütme

enter image description here

Bu benim HTML ana sayfası: Ben ajax navigasyon iş mükemmel kodu

basitleştirilmiş var

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title>Navigation AJAX avec jQuery</title> 
 

 
<script type="text/javascript" src="js/jquery.js"></script> 
 
    
 
<script type="text/javascript"> 
 
$(document).ready(function() { 
 
\t var $contenu_div = $('#content div'); 
 
\t 
 
\t 
 
\t $('#nav li a').on('click', function() { 
 
\t \t var url = $(this).attr('href'); 
 

 
\t \t \t $.ajax({ 
 
\t \t \t \t url: url, 
 
\t \t \t \t cache: false, 
 
\t \t \t \t success: function(html) { 
 
\t \t \t \t \t $contenu_div.hide().html(html).fadeIn(); 
 
\t \t \t \t } 
 
\t \t \t }); 
 
\t \t \t \t 
 
\t \t return false; 
 
\t }); 
 
}); 
 
</script> 
 
    
 
</head> 
 
<body> 
 

 
\t <h2>Navigation AJAX with jQuery</h2> 
 

 
\t <div id="menu"> 
 
\t \t <ul id="nav"> 
 
\t \t \t <li><a href="pages/page1.html">page 1</a></li> 
 
\t \t \t <li><a href="pages/page2.html">page 2</a></li> 
 
\t \t \t <li><a href="pages/page3.html">page 3</a></li> 
 
\t \t \t <li><a href="pages/page4.html">page 4</a></li> 
 
\t \t </ul> 
 
\t </div> 
 

 
\t <div id="content"> 
 
\t \t <div>the content of the first page</div> 
 
\t </div> 
 
    
 
    <script src="problem.js"></script> 
 

 
</body> 
 
</html>

ama <script src="problem.js"></script> yürütmüyor , sorun nedir?

+0

Örnek kodunuz nerede? – Shayan

+0

Peki, – bildstein

+0

numaralı probleme kodlarınız iyi görünüyor, belki de ajax isteğiniz "başarı" durumunu almıyor olabilir. ajax yanıt durumunuzu kontrol ediyor musunuz ??? – Shayan

cevap

0

böyle deneyin: senin için bir örnek yazdım

var $contenu_div = $('#content div'); 
$('#nav li a').on('click', function() { /* click captured */ 
    var url = $(this).attr('href'); /* set the URL we want to load */ 
    $contenu_div.hide().load(url, function(){ /* hide element first, then load it */ 
     $(this).fadeIn() /* this is the callback which will fadeIn() when content loaded */ 
    }); 
    return false; /* stop the click */ 
}); 
+0

ile çalışır. Betik çalıştırılamıyor – bildstein

+0

Ne demek yürütmez? Herhangi bir hata görüyor musunuz? - Yani problem.js çalışmıyor mu? –

+0

Hayır, hata yok, ancak ben betiğin çalışmadığı anlamına gelmeyen bir sonuç alamıyorum, benim İngilizce – bildstein

0

...

Ben neler olduğunu göstermek için yorumladı ettik tam ajax sayfası oluşturmak ve benim için iyi çalışır, ama açılı, spa gibi bir spa çerçevesini kullanmanızı öneririm. Bu çerçeve böylece yararlı cihazlardır

main.html

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title></title> 
</head> 
<body> 
    <h2>Navigation AJAX with jQuery</h2> 
    <div id="menu"> 
     <ul id="nav"> 
      <li><a href="page.html">page 1</a></li> 
      <li><a href="page.html">page 2</a></li> 
      <li><a href="page.html">page 3</a></li> 
      <li><a href="page.html">page 4</a></li> 
     </ul> 
    </div> 

    <button id="click-me">First Click on page 1, then click me</button> 
    <div id="content"> 
     <div>the content of the first page</div> 
    </div> 

<script type="text/javascript" src="jquery.1.11.3.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
    var $contenu_div = $('#content div'); 
    $('#nav li a').on('click', function() { 
     var url = $(this).attr('href'); 
     $.ajax({ 
      url: url, 
      cache: false, 
      success: function(html) { 
       $contenu_div.hide().html(html).fadeIn(); 
      } 
     });     
     return false; 
    }); 
    $("#content").on("click", "#click",function(){ 
     alert("button click"); 
    }) 
}); 
</script> 
</body> 
</html> 

doğrudan gibi document.ready fonksiyonu içine bu ajax fonksiyonu koyabilirsiniz

<h2>page 2</h2> 
<button id="click">Click me</button> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     // console.log("page 2 is loaded"); 
     // your code should be here 
     $("#click-me").on("click",function(){ 
      alert("button clicked on main page"); 
     }) 
    }); 
</script> 
1

sayfa.html

$(document).ready(function(){ 
var url = $(this).attr('href'), $contenu_div = $('#content div'); 
     $.ajax({ 
      url: url, 
      cache: false, 
      success: function(html) { 
       $contenu_div.html(html); 
      } 
     }); 
    }); 

Tamamen DOM yüklendikten sonra sunucuya çarpacak ve veriyi se rver.

İlgili konular