是的,我在这里看过同样的文章,谷歌帮助了。但我是设计师,而不是编码员。我可以复制\粘贴一些代码,甚至改变一些东西,但这个问题对我来说太难了。
所以,我的主页上有新闻,当你向下滚动时,下一页加载了ajax。有一个脚本,显示每个帖子的\ hides评级栏。但是此代码在加载的内容中不起作用。如果对你不好,请修理它。
P.S。我试着去研究(),或者活着,但是我以前很伤心,不是我的水平。
$(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);
}
});
答案 0 :(得分:4)
尝试将您的代码包含在ajax html数据中,或者您可以在附加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数据的三种不同方法。
答案 1 :(得分:2)
我目前时间不长,但我会尽力而为。
执行.hover()
等时,它们将绑定到您提供的实际元素。现在,在事件绑定到DOM元素时,通过AJAX加载的元素不可用。
一种解决方案是已经提供的解决方案。然而,恕我直言更好。您需要的事件通常是“冒泡”,这意味着它们会在DOM树上向上传递。您需要将事件绑定到DOM元素,该元素不会通过AJAX替换/更改,但是是持久的。如果你是有一个容器#content
,你的AJAX被加载到其中,你想把这个容器作为事件绑定的基础,因为冒泡。
尝试用
替换$('.someClass').click()
$('#content').on('click', '.someClass', function(event) {
// your event handling
});