结合jquery规则

时间:2011-07-03 18:05:00

标签: jquery fancybox

我有这个jquery

$('#1').fancybox({
'width': '50%',
'height': '90%',
'autoDimensions': false,
'type': 'ajax',
'ajax': {
    dataFilter: function(data) {
        return $(data).find('.news:first')[0];
    }
}
});
$('#2').fancybox({
'width': '50%',
'height': '90%',
'autoDimensions': false,
'type': 'ajax',
'ajax': {
    dataFilter: function(data) {
        return $(data).find('.news:eq(1)')[0];
    }
}
});

是否有可能将这些2合并为1

日Thnx

2 个答案:

答案 0 :(得分:0)

喜欢这样吗?

$('#1, #2').fancybox({
    'width': '50%',
    'height': '90%',
    'autoDimensions': false,
    'type': 'ajax',
    'ajax': {
        dataFilter: function(data) {
            return $(data).find('.news:eq(1)')[0];
        }
    }
});

您可以像在CSS中一样使用逗号分隔选择器。

修改 :first只是:eq(0)的简写,因此您的设置之间唯一的区别就是选择器。引自jQuery docs

  

:第一个伪类是等价的   to:eq(0)。

答案 1 :(得分:0)

你最大的问题是dataFilter,但你可以尝试这样的事情:

$('#1, #2').each(function(i, el) {
  $(el).fancybox({
    'width': '50%',
    'height': '90%',
    'autoDimensions': false,
    'type': 'ajax',
    'ajax': {
      dataFilter: function(data) {
        return $(data).find('.news:eq(' + i + ')')[0];
      }
    }
  });
});