объединить правила jquery - PullRequest
0 голосов
/ 03 июля 2011

У меня есть этот 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 голосов
/ 03 июля 2011

Ваша самая большая проблема - 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];
      }
    }
  });
});
0 голосов
/ 03 июля 2011

Как это?

$('#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 :

Первый псевдокласс соответствует первому: eq (0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...