jQuery .load()在jQuery load()内的另一个加载内容中不起作用

时间:2014-08-29 14:49:04

标签: javascript jquery html

我使用jQuery加载函数在div中加载网站的页面。当我点击顶部导航时,所有页面都正常加载。但我有子页面链接,位于加载的内容,当我点击它是单独加载。这是我的代码。

<ul class="top-navigation">
<li><a class="page-link" href="page1.html">Link1</a></li>
<li><a class="page-link" href="page2.html">Link2</a></li>
<li><a class="page-link" href="page3.html">Link3</a></li>
</ul>
<div class="page-content"></div>

<script>
$(window).load(function(){
$(".page-link").click(function(){
            var page_link = $(this).attr("href");
    $('#page-content').fadeOut('slow', function(){
            $('#page-content').load(page_link, function(){
            $('#page-content').fadeIn('slow');
        });
});
</script>

page1.html的内容:

some page contents
<a class="page-link" href="sub-page1.html">Sub page</a>

我甚至尝试使用$.getScript()加载主js但没有任何效果。 任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

好了现在只需用这个替换

<a class="page-link" href="javascript:void(0)" data-href="sub-page1.html">Sub page</a>

<script>
$(document).ready(function(){
    $(".page-link").click(function(){
        var page_link = $(this).attr("data-href");
        $('#page-content').load(page_link);
    });
});
</script>

答案 1 :(得分:1)

您的问题是绑定它们时DOM中没有这些元素。更改绑定元素的方式。

$(document).on('click', ".page-link", function(){...

这将绑定到页面上的现有元素和新创建的元素。

希望这会对你有所帮助。

答案 2 :(得分:0)

试试这个

<a class="page-link" href="javascript:void(0)" data-href="sub-page1.html">Sub page</a>

<script>
    $(document).ready(function(){
        $(".page-link").click(function(){
            var page_link = $(this).attr("data-href");
            $('#page-content').fadeOut('slow', function(){
                $('#page-content').load(page_link, function(){
                    $('#page-content').fadeIn('slow');
                });
            });
       });
    });
</script>

答案 3 :(得分:0)

试试这个

在主页面中:

<script>
$(".page-link").click(function(){

        var page_link = $(this).attr("href");
        $('#page-content').fadeOut('slow', function(){
            $('#page-content').load(page_link, function(){
            $('#page-content').fadeIn('slow');
});

</script>

在子页面中:

<a class="page-link2" href="javascript:void(0);" loc="sub-page1.html">Sub page</a>

<script>
$(".page-link2").click(function(){

        var page_link = $(this).attr("loc");
        $('#page-content').fadeOut('slow', function(){

                $('#page-content').html("");
                $('#page-content').load(page_link, function(){

                        $('#page-content').fadeIn('slow');
                });
        });
});
</script>