打开iframe而不是发布

时间:2011-11-08 12:26:39

标签: jquery filter

我有一个jQuery的问题:当我在拇指图像上点击主页时会打开iframe,但是当我点击过滤器项目并在图像上打开帖子时。 这是我的网站测试:[obscured]

为什么当我点击过滤器然后在图像上打开帖子而不是iframe?

谢谢你,抱歉我的英文不好!

1 个答案:

答案 0 :(得分:1)

当您过滤投资组合项目时,会动态重新生成这些项目,因此先前绑定的行为将丢失(在您的情况下,是单击事件)。

要解决jQuery有.live()事件,它不仅将事件处理程序附加到当前DOM元素,还附加到将来创建的元素(即,不是在加载DOM时创建,而是稍后创建)。

在你的.js代码中,你有这个电话:

portfolioItemsEnabled.click( function (e) {
  if(!jQuery(this).hasClass('active') && jQuery(this).hasClass('visible')) {    
    portfolioItems.removeClass('active');
    jQuery(this).addClass('active');
    portfolioItems.not('.active').find('.overlay').css({ display: 'none' });
    var postId = jQuery(this).attr('id').split('portfolio-')[1];
    tz_getPortfolio(postId);
  }
  e.preventDefault();
});

为了让它随时工作,即使加载了新的/不同的投资组合项目,你也应该像这样更改电话

jQuery('#portfolio-items.enabled li').live("click", function(e) {
  if(!jQuery(this).hasClass('active') && jQuery(this).hasClass('visible')) {    
    portfolioItems.removeClass('active');
    jQuery(this).addClass('active');
    portfolioItems.not('.active').find('.overlay').css({ display: 'none' });
    var postId = jQuery(this).attr('id').split('portfolio-')[1];
    tz_getPortfolio(postId);
  }
  e.preventDefault();
});