2016-09-29 3 views
0

Не очень удобно с Js, так что вам нужна помощь с некоторым кодом. У меня есть следующий якорьJS - использовать preventDefault вместо возврата false

<a href="#" class="addroom" onclick="return false;"><span>Add</span></a> 

Я получаю предупреждение относительно «OnClick» события, где его говорит мне, что я не имею клавиатуру equivilant обработчик для OnClick = "возвращение ложным, я сделал некоторые исследования и я могу предотвратить это предупреждение, используя preventDefault если я ставлю это в теге скрипта на странице, то он работает так же, и я думаю, что это позволит избавиться от вопроса

$("a.addrom").click(function(e) { 
e.preventDefault(); 

});..

Тем не менее, я бы предпочел добавить его в существующие js, но им трудно найти, что происходит. Я пытаюсь добавить его в событие click.

setupRooms: function (settings) { 
      //hide all age fields 
      $(settings.agesSelector, settings.hotelSearchDiv).hide(); 
      //hide all except first 
      $(settings.roomsSelector + ":not(:first)", settings.hotelSearchDiv).hide(); 
      $('select', settings.hotelSearchDiv).prop('selectedIndex', 0); //set all to 0 
      $(settings.addRoomSelector, settings.hotelSearchDiv).on('click', function() { 
       methods.addRoom(settings); 
      }); 
      $(settings.removeRoomSelector, settings.hotelSearchDiv).on('click', function() { 
       var id = $(this).data('id'); 
       methods.removeLastRoom(settings, id); 
      }); 

      $(settings.childrenNumberSelector, settings.hotelSearchDiv).on('change', function() { 
       methods.handleChildrenChange(settings, $(this)); 
      }); 
     }, 

Edit * Этот код работает для меня благодаря @patrick & @roberto

 $(settings.addRoomSelector, settings.hotelSearchDiv).on('click', function (e) { 
      e.preventDefault(); 
      methods.addRoom(settings); 
     }); 
+1

'class' отсутствует закрытие' '' '. – zero298

+0

_ «Я пытаюсь добавить его к событию клика». Затем добавьте параметр в свою функцию, а затем добавьте вызов preventDefault внутри функции так же, как и во втором фрагменте кода. –

+0

отсутствует «было опечатка, извините. – Paul

ответ

2

Если я правильно понял, вы хотите добавить, что в обработчиках клик:

$(settings.addRoomSelector, settings.hotelSearchDiv).on('click', function (e) { 
    e.preventDefault(); 
    methods.addRoom(settings); 
}); 
$(settings.removeRoomSelector, settings.hotelSearchDiv).on('click', function (e) { 
    e.preventDefault(); 
    var id = $(this).data('id'); 
    methods.removeLastRoom(settings, id); 
}); 

В случае, если будет достаточно для предотвращения дефолта в обработчиках кликов.

Cheers

+0

Спасибо - просто приходите к такому выводу, следуя комментариям patricks. Я обновил свой вопрос так же, как вы ответили. Спасибо @Roberto – Paul

Смежные вопросы