0

我构建了一个非常基本的动态 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>

希望我已经给了你足够的信息来看看这里出了什么问题。谢谢。

4

4 回答 4

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

s 在这里是对象,但它应该是字符串并将其放在 s.click 函数之外

于 2012-06-02T14:49:07.747 回答
0

您正在使用 click inside click try :

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

确保你的 html 文件的第一个字母是大写的

于 2012-06-02T14:49:36.700 回答
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'));
    });
});
于 2012-06-02T15:38:52.930 回答
-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');
}); ​
于 2012-06-02T14:56:11.533 回答