2016-09-12 1 views
0

Я думаю, что у меня проблема с возможностью выбора элементов DOM, которые являются частью bootstrap-slider. Когда я пытаюсь настроить таргетинг на такие события, как click, ничего не увольняется.Bootstrap-slider loading не работает

Когда я обновляю страницу, все события срабатывают нормально. Почему это может произойти?

$(document).on("page:change", function() { 
    $(".slider-handle") 
     .on("mousedown", function() { 
      console.log("FOCUSED") 
      $(".active-handle").removeClass("active-handle"); 
      $(this).addClass("active-handle"); 
     }) 
     .on("mouseup", function() { 
      console.log("REMOVED") 
      $(this).removeClass("active-handle"); 
      $(".active-handle").removeClass("active-handle"); 
     }) 
     .on("click", function() { 
      console.log("REMOVED") 
      $(this).removeClass("active-handle"); 
      $(".active-handle").removeClass("active-handle"); 
     }) 
+0

Вы заметили ошибку в консоли –

+0

Попробуйте jquery event delegate() –

+0

Нет ошибок в консоли –

ответ

1

Если элементы не видны при загрузке, jQuery не может назначить обработчики событий. Попробуйте это:

$(document).on("mousedown", ".slider-handle", function() { 

Для повышения производительности, заменить document с любым стойким предком элемента.

+0

Это работает для 'mouseup' и' click', но 'mousedown' по-прежнему не срабатывает. –

+0

@Jeremy Thomas подход будет работать на мыши вниз, см. Мою скрипку https://jsfiddle.net/bapo2ah5/2/ –