2012-06-02 46 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

相关问题