2016-09-29 67 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

相关问题