Слайдеры jQuery, как я могу исключить 1 слайдер из jQuery ('. slider'). each (function () - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть 3 ползунка, которые рассчитывают количество МБ, используемых в Интернете.Общий МБ переводится в ГБ, а ползунок общего объема создается и корректируется с учетом общего объема.Я использую jQuery ('. Slider'). Each (function (), чтобы найти МБ для каждого ползунка и затем увеличить общую сумму. Однако у меня есть 1 из ползунков, которые я не хочу включать в каждую функциюМогу ли я исключить 1 ползунок из функции .each?

как я создаю ползунки:

// create the sliders and delegate properties.

  jQuery('#wifi-sl').slider({ min: 0, max: 250,  animate: true, range: 'min', step: 10,
    slide: function (ev, ui) {
     jQuery('#wifi-value').html(ui.value + ' %');
     determineWifi;
    },
    change: function (ev, ui) {
     jQuery('#wifi-value').html(ui.value + ' %');
     determineWifi;
    }
  });

  jQuery('#email-sl').slider({ min: 0, max: 250,  animate: true, range: 'min', step: 10,
    slide: function (ev, ui) {
     jQuery('#email-value').html(ui.value + ' emails');

     determineData();
    },
    change: function (ev, ui) {
     jQuery('#email-value').html(ui.value + ' emails');

     determineData();
    }
  });

  jQuery('#email-sl').slider({ min: 0, max: 250,  animate: true, range: 'min', step: 10,
    slide: function (ev, ui) {
     jQuery('#email-value').html(ui.value + ' emails');
     slider_id='email-sl';
     determineData();
    },
    change: function (ev, ui) {
     jQuery('#email-value').html(ui.value + ' emails');
     slider_id='email-sl';
     determineData();
    }
  });

я не хочу, чтобы верхний (первый) ползун учитывался в каждомфункция ниже, как я могу исключить это?

function determineData() {

  total_data_mb = 0.00;

  jQuery('.slider').each(function() {
    var this_data = Math.round( jQuery(this).slider('option', 'value') * jQuery(this).data('data')['units'] * jQuery(this).siblings('.per-select').val() * 100) / 100;
    jQuery(this).siblings('.slider-data').html(this_data + ' MB');
    total_data_mb += this_data;
  });

  total_data_gb = (Math.round( (total_data_mb / 1024) * 100) / 100).toFixed(2);

Ответы [ 3 ]

3 голосов
/ 29 февраля 2012

Вы можете исключить его,

jQuery('.slider').not('#wifi-sl').each(...);

или общий случай

jQuery('.slider').slice(1).each(...);
0 голосов
/ 29 февраля 2012
$('.slider:gt(0)').each(.......

Захватывает класс слайдера и начинает с индекса 1

0 голосов
/ 29 февраля 2012

Вы можете проверить селектор : не в сочетании с селектором : первый

    jQuery('.slider:not(:first)').each(function(){
      /* your code */
    });

другой вариант - селектор брата

    jQuery('#wifi-sl ~ .slider').each(function(){
      /* your code */
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...