2013-07-05 82 views
0

我想写一个简单的jquery函数,它将HTML文件的内容插入到当前页面的特定位置,并激活引导程序的smoothscroll.js以向下滚动到链接被点击。追加锚点上的页面内容点击

这里是我的开始:

脚本:

<script type="text/javascript"> 
$('a').filter('[data-fetch]').click(function(e){ 
    var clicked = $(e.target).closest('a') 
    , fetch = clicked.attr('data-fetch') 
    ; 

    $.ajax({ 
    url: fetch, 
    success: function(data){ 

     $('body').append(data); 
     smoothScroller(clicked.attr('href')); 

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

HTML:

<a href="#about" data-fetch="index-alt.html">Link</a> 

#about锚在index-alt.html页。它是否正确?

回答

2

我想你想获得点击的元素的属性,所以试试这个:

$('a').filter('[data-fetch]').click(function(e){ 
    var fetch = $(this).data('fetch'); //this here refers to the clicked element. 

你也刚刚摆脱过滤器,做:

​​
+0

我明白jsfiddle不允许ajax;有没有一个平台,你可以推荐我可以尝试和演示这个答案? – alias51

+0

@RobM你可以在代码本身中添加它,它应该可以工作。 – PSL

1

只需使用​​

$('a').filter('[data-fetch]').click(function (e) { 
    var url = $(this).data("fetch"); //use .data to retrieve custom data 
    $("body").load(url, function() { 
     console.log("data loaded"); 
    }); 
}); 
+0

猜猜他不能使用加载,因为这将用新的html替换整个body的内容。好像他正试图用ajax追加新数据。 – PSL