2012-06-02 76 views
0

我構建了一個非常基本的動態AJAX函數,使用jQuery將內容加載到當前頁面。做了一個AJAX函數,但jQuery似乎沒有迴應它

我在一個非常通用的頁面上測試了它,並且沒有出現任何問題,但是隻要我把這段代碼放到實際的生產站點中,我就會因爲它不工作而需要它。

我已經試過每種方法來讓這個工作,所以我不知道現在還有什麼要做。我有一種小竅門,覺得在生產現場使用了錯誤的選擇器。儘管這可能僅僅是因爲缺乏自信(初學者),但我認爲jQuery根本就沒有工作。

下面的代碼:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script> $(document).ready(function(){ 
     var a = $('article.announce'); 
     var s = $('#info li a'); 
     // You only need to change the above two pieces of code.  

      s.click(function(){ 
       var url = $(this).html(), 
        clicked = $(this).attr('data-id'); 



        $(s+'[data-id='+clicked+']').click(function(){ 
         a.load(url+'.html') 


        }); 
}); 
});</script> 

我努力的目標的HTML如下:

<aside id="info" class="clearfix"> 
<h1>About Us &gt;</h1> 
<h2>Other Stuff:</h2> 
<ul> 
    <li><a href="#" data-id="1">About</a></li> 
    <li><a href="#" data-id="2">Contact</a></li> 
    <li><a href="#" data-id="3">Examples</a></li> 

</ul> 



</aside> 
<article class="announce"> 
<p>Text to be replaced will be here!</p> 




</article> 

希望我已經給你足夠的信息來看看有什麼錯在這裏。謝謝。

回答

0

更改HTML標記:

<aside id="info" class="clearfix"> 
    <h1>About Us &gt;</h1> 
    <h2>Other Stuff:</h2> 
    <ul> 
     <li><a href="about.html">About</a></li> 
     <li><a href="contact.html">Contact</a></li> 
     <li><a href="example.html">Examples</a></li> 
    </ul> 
</aside> 

<article class="announce"> 
    <p>Text to be replaced will be here!</p> 
</article> 

那麼做到這一點:

$(function() { 
    var a = $('.announce'); 
    $('#info li a').on('click', function(e) { 
     e.preventDefault(); 
     a.load($(this).attr('href')); 
    }); 
}); 
0
$(s+'[data-id='+clicked+']').click(function(){ 
         a.load(url+'.html') 
        }); 

s是反對在這裏,但它應該是字符串,地方它s.click功能外

+0

我真的不知道我的理解是,因爲它的工作完美,當我創建的函數。爲什麼它會在一個站點上運行,而不在另一個站點上運行? – Dacu

+0

我的補救措施是否有效? – 2012-06-02 15:30:13

+0

不,他們不是。我真的認爲我的文檔沒有正確加載jQuery,因爲我嘗試了一些基本的東西,比如更改元素的顏色無濟於事。 – Dacu

0

你使用點擊點擊試試裏面:

$(document).ready(function(){ 
    var a = $('article.announce'); 
    var s = $('#info li a'); 
    s.click(function(){ 
     var url = $(this).html(); 
     a.load(url+'.html') 
     }); 
}); 

確保第一你的html文件的大寫字母大寫

+0

嗨,正如我所提到的,我是一個初學者,我使用原始的單擊事件來存儲我需要的變量url的信息,並單擊第二個點擊事件來處理另一個頁面的實際定位和加載。感謝大寫字母的提示,我確實已經這麼做了,但是幾天前我幾乎錯過了當我第一次寫代碼時:P – Dacu

-1

http://jsfiddle.net/83V4K/

您只需要1次點擊事件。

var a = $('article.announce'); 
var s = $('#info li a'); 

s.click(function(){ 
    var url = $(this). 
    a.load(url+'.html'); 
}); ​ 
+0

這沒有奏效,我不確定我是否充分解釋了我正在嘗試的內容儘管如此,謝謝! – Dacu

相關問題