1

是的,我在这里查看了相同的文章,谷歌提供了帮助。但我是设计师,不是编码员。我可以复制\粘贴一些代码,甚至改变一些东西,但是这个问题对我来说太难了。

所以,我的主页上有新闻,当你向下滚动时,下一页会加载 ajax。有一个脚本,显示\隐藏每个帖子的评分栏。但是此代码在加载的内容中不起作用。请修复它,如果它对你来说不难的话。

ps 我试过调查on(),还是活的,但正如我之前伤心的那样,不是我的水平。

$(document).ready(function() {

var element = $('#dle-content .main-news');
for (i=0; i<element.length; i++)
    {
        $(element[i]).addClass('news-'+i);
    }

$('#dle-content .main-news').hover(
    function() {
        $('.main-news-hidden').stop(true);
        $(this).find('.main-news-hidden').animate({
            'bottom':'0'
        },400
        );
    }, function() {
        $('.main-news-hidden').stop(true);
        $(this).find('.main-news-hidden').animate({
            'bottom':'-120'
        }, 0);
        $('.main-news-hidden').stop(true);
});

$('.top-news li').hover(
    function() {
        $('.top-news-hidden').stop(true).fadeOut(0);
        $(this).find('.top-news-hidden').animate({
            'opacity':'1'
        },400, function()
            {
                $(this).fadeIn();
            }
        );
    }, function() {
        $('.top-news-hidden').stop(true);
        $(this).find('.top-news-hidden').fadeOut(100);
});

var element2 = $('.top-news li');
for (i=0; i<element2.length; i++)
    {
        $(element2[i]).find('.list').append(i+1);
    }

});

4

2 回答 2

4

尝试将您的代码包含在 ajax html data 中,或者您可以在附加 html 之后将您的脚本添加到 done 函数中。

$.ajax({
  url: "yourUrl",     
}).done(function(data) {
   $("#yourId").html(data);   // Solution 1 :  your content is loaded with ajax, Also this data has your jQuery script
   // Solution 2:  Now start you can call your script via function or add directly here (only html data is needed)
   yourFunction();
   //Solution 3: Now add your jquery code directly
   $(".someClass").click(function(){
     //events
   });
});

这是使用 jQuery 访问 ajax 数据的三种不同方法。

于 2013-08-25T17:13:27.063 回答
3

我现在时间很紧,但我会尽力而为。

当您的.hover()etc 被执行时,它们将绑定到您提供的实际元素。现在,通过 AJAX 加载的元素在事件绑定到 DOM 元素时不可用。

一种解决方案是已经提供的解决方案。然而,恕我直言,有一个更好的。您需要的事件通常是“冒泡”的,这意味着它们会沿着 DOM 树向上传递。您需要将您的事件绑定到一个 DOM 元素,该元素不会通过 AJAX 替换/更改,而是持久的。如果你有一个容器#content,你的 AJAX 被加载到其中,你想把这个容器作为你的事件绑定的基础,因为那个冒泡。

尝试$('.someClass').click()

$('#content').on('click', '.someClass', function(event) {
  // your event handling
}); 
于 2013-08-25T17:36:32.253 回答