Javascript 在onclick上精简代码的最佳方法
大部分情况下,我并不擅长javascript/jquery,但我知道如何让一些软件正常工作。但我的问题是我有一大堆Javascript 在onclick上精简代码的最佳方法,javascript,jquery,oop,Javascript,Jquery,Oop,大部分情况下,我并不擅长javascript/jquery,但我知道如何让一些软件正常工作。但我的问题是我有一大堆 $("body").on("click", "button#thisid", function(event) { //do stuff here }); 有很多点击使用jQueryPOST和get函数,但它们都有微小而简单的差异,我需要通过它们发送。我不希望每个按钮都有onclick事件,但我不确定如何将该事件绑定到需要附加它的大量项目列表 我一直在试图想出一些办法来缩小
$("body").on("click", "button#thisid", function(event) {
//do stuff here
});
有很多点击使用jQueryPOST和get函数,但它们都有微小而简单的差异,我需要通过它们发送。我不希望每个按钮都有onclick事件,但我不确定如何将该事件绑定到需要附加它的大量项目列表
我一直在试图想出一些办法来缩小所有这些,但我想有最好的办法,而不是一大堆崩溃和失败。因此,我正在接触那些比我了解更多的人,以便引导我走上正确的道路
请帮助我发现一个很好的方法是为每个按钮设置一行,如下所示:
$('#model').on('click', openModel());
$('#openDropdown').on('click', openDropdown());
$('#shoppingCart').on('click', shoppingCart());
然后定义这些函数中的每一个:
function openModel() {
// Stuff here
}
function openDropdown() {
// Stuff here
}
function shoppingCart() {
// Stuff here
}
因此,我不想将函数作为参数来编写,而是觉得单独编写并像上面那样调用它更为简洁。我不太明白您想要做什么。。。 但是$(“body”)是jquery选择器,它定义了侦听器将绑定到哪些元素 因此,如果您想为更多不同的元素创建一个监听器,最简单的解决方案可能是创建一个类似“listenedElement”的类,您将该类提供给希望监听器响应的每个元素,并像这样编写选择器
$('.listenedElement').on( "click", function() {});
如果你只是寻找点击监听器,这个看起来也很不错:
考虑到您的元素是动态注入的,您需要将单击处理程序应用于页面加载中始终存在的元素:
$(文档).ready(函数(){
$(文档)。在(“单击”,“按钮.目标”,函数()上){
console.log($(this)[0].id);
});
});代码>
一个
两个
最好的方法是找出多次单击之间的同义功能。如果有类似的功能,您可以针对一个类而不是一个ID。您可以发布其余的代码吗?无法通过提供的信息告诉您如何改进它。@Obsidiase我一直在考虑这些问题,但不知道这是否是最有效的方法。不幸的是,我不能发布代码,尽管我很想发布,以帮助变得更好。此外,我不确定我是否需要像插件一样思考,还是仅仅像类类型一样思考。他不希望每个元素都有一个单击处理程序。我的一些内容是动态的,因此按钮并不总是在页面加载时呈现。所以我听身体的按钮点击。我也不想为了调用特定事件而在每个按钮上附加各种数据标签(数据id、数据类型)。你有别的办法吗?