jquery 悬停和 ajax 分页在一起时出现错误
感谢您的阅读。我的 WordPress 网站上有一些代码,第一个代码在图像上添加了一个覆盖层,其中包含颜色、文章标题和转到项目的链接。第二个代码使用 jQuery 添加 ajax 分页。
问题是我的项目包含图像和 jquery 覆盖工作完美,但是当他们单击调用 ajax 分页的上一个项目链接时,jquery 覆盖停止工作。
我一直在尝试不同的选择,但也许我没有找到解决问题的正确方法。有人知道吗?
提前致谢。
代码:
// PORTFOLIO HOVER EFFECT
jQuery('ul.portfolio-thumbs li').hover(function(){
jQuery(".overlay", this).stop().animate({top:'0px'},{queue:false,duration:300});
}, function() {
jQuery(".overlay", this).stop().animate({top:'190px'},{queue:false,duration:300});
});
// POSTS NAVIGATION
jQuery('#posts-navigation a').live('click', function(e){
e.preventDefault();
var link = jQuery(this).attr('href');
jQuery('#ajax-container').fadeOut(500).load(link + ' #ajax-inner', function(){ jQuery('#ajax-container').fadeIn(500); });
});
Thanks for reading. I have some codes on my wordpress site, the first one adds an overlay over an image with a color, the article title and a link to go to the project. The second code adds an ajax pagination using jQuery.
The thing is that i have my projects with images and the jquery overlay owrking perfect, but when they click on the previous projects link that calls the ajax pagination, the jquery overlay stops working.
I have been trying different options, but maybe i'm not on the correct way to solve it. Does anyone has a clue?
Thanks in advance.
The codes:
// PORTFOLIO HOVER EFFECT
jQuery('ul.portfolio-thumbs li').hover(function(){
jQuery(".overlay", this).stop().animate({top:'0px'},{queue:false,duration:300});
}, function() {
jQuery(".overlay", this).stop().animate({top:'190px'},{queue:false,duration:300});
});
// POSTS NAVIGATION
jQuery('#posts-navigation a').live('click', function(e){
e.preventDefault();
var link = jQuery(this).attr('href');
jQuery('#ajax-container').fadeOut(500).load(link + ' #ajax-inner', function(){ jQuery('#ajax-container').fadeIn(500); });
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在同一天找到了解决方案,@BrockAdams 帮助我解决了疑虑。我将代码放在这里是因为它对某人有帮助。
I've found the solution in the same day and @BrockAdams helped me with the doubts. I'm putting here the code because it can be helpful for someone.
您可以发布您自己问题的答案。
并且,您需要使用
live()
Doc 悬停时,因为分页可能会加载到新的portfolio-thumbs li
中。如果没有
live()
,这些新的li
将不会附加任何事件(除非您重新调用jQuery('ul.portfolio-thumbs li' ).hover
在每个分页事件之后)。Live 更容易,并且避免了将同一事件侦听器的多个副本附加到元素的陷阱。
而且,是的,您可以在同一页面上使用两个
live()
调用(或多个),不会出现任何问题。You can post answers to your own question.
And, you needed to use
live()
Doc on the hover, because the pagination presumably loads in newportfolio-thumbs li
s.Without the
live()
, these newli
s would have no events attached to them (unless you re-calledjQuery('ul.portfolio-thumbs li').hover
after every pagination event).Live is easier, and avoids the pitfall of having multiple copies of the same event-listener attached to an element.
And, yes, you can use both
live()
calls (or more) on the same page without problems.