2016-09-29 69 views
0

Js不是很好,所以尋找一些現有代碼的幫助。 我有以下的錨JS - 使用preventDefault而不是返回false

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

我得到有關的「onClick」事件,其中它告訴我,我沒有鍵盤equivilant處理程序的onclick =「返回false警告;我做了一些研究,我可以使用的preventDefault防止此警告,如果我把這個腳本標籤頁面,然後它的工作原理相同,我認爲這將擺脫這一問題的

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

});

不過,我寧願將它添加到現有的JS,但即時通訊難以解決正在發生的事情。我試圖將其添加到單擊事件。

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)); 
      }); 
     }, 

編輯*此代碼爲我工作的感謝@patrick & @roberto

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

'class'缺少結尾'''「。 – zero298

+0

_「我正在嘗試將它添加到click事件中。」_然後在函數中添加一個參數,然後在函數內部添加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); 
}); 

應該足以讓您的點擊處理程序具有防止默認設置。

乾杯

+0

謝謝 - 只是在帕特里克評論後才得出這個結論,我更新了我的問題,就像你回答的那樣。謝謝@Roberto – Paul

相關問題