Индекс не учитывается при нажатии

Я использую следующий код, чтобы получить IMEI или использовать Secure.ANDROID_ID в качестве альтернативы, когда устройство не имеет возможности телефона:

/** * Returns the unique identifier for the device * * @return unique identifier for the device */ public String getDeviceIMEI() { String deviceUniqueIdentifier = null; TelephonyManager tm = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); if (null != tm) { deviceUniqueIdentifier = tm.getDeviceId(); } if (null == deviceUniqueIdentifier || 0 == deviceUniqueIdentifier.length()) { deviceUniqueIdentifier = Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID); } return deviceUniqueIdentifier; }
0
задан Erik Philips 13 July 2018 в 20:18
поделиться

1 ответ

Этот код, похоже, работает, когда я запускаю его с помощью простого примера списка пулей. Он правильно утверждает, что первая точка пули - это индекс 0. Вы просто вызываете функцию dec() в неправильном месте? Обратите внимание, что когда вы нажимаете кнопку «Далее», вы регистрируете текущую позицию до того, как будет сделана смена. Я обновил код dec(), чтобы принять параметр, чтобы показать, что я имею в виду.

$(document).ready(function() {

//sets first item to active
$('.slider-item').first().addClass('active');

function dec(prefix) {
  var $this = $(this);
  var current = $('.slider-items').find('.active');
  var position = $('.slider-items').children().index(current);

  console.log(prefix + position);
}

$('.next, .prev').click(function() {
  dec("before click handled: ");
  var $this = $(this);

  var current = $('.slider-items').find('.active');
  var position = $('.slider-items').children().index(current);

  var numItems = $('.slider-item').length;

  if ($this.hasClass('next')) {
    if (position < numItems - 1) {
      $('.active').removeClass('active').next().addClass('active');
    } else {
      $('.slider-item').removeClass('active').first().addClass('active');
      $('.bullet').removeClass('active').first().addClass('active');
    } //else
  } else {
    if (position === 0) {
      $('.slider-item').removeClass('active').last().addClass('active');
      $('.bullet').removeClass('active').last().addClass('active');
    } else {
      $('.active').removeClass('active').prev().addClass('active');
    }
  }
  dec("after click handled: ");

})}); // click function
li.active {
 color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="slider-items">
<li class="slider-item">A</li>
<li class="slider-item">B</li>
<li class="slider-item">C</li>
<li class="slider-item">D</li>
</ul>
<button class="prev">Prev</button>
<button class="next">Next</button>

1
ответ дан stephen.vakil 17 August 2018 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: