Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在onclick上精简代码的最佳方法_Javascript_Jquery_Oop - Fatal编程技术网

Javascript 在onclick上精简代码的最佳方法

Javascript 在onclick上精简代码的最佳方法,javascript,jquery,oop,Javascript,Jquery,Oop,大部分情况下,我并不擅长javascript/jquery,但我知道如何让一些软件正常工作。但我的问题是我有一大堆 $("body").on("click", "button#thisid", function(event) { //do stuff here }); 有很多点击使用jQueryPOST和get函数,但它们都有微小而简单的差异,我需要通过它们发送。我不希望每个按钮都有onclick事件,但我不确定如何将该事件绑定到需要附加它的大量项目列表 我一直在试图想出一些办法来缩小

大部分情况下,我并不擅长javascript/jquery,但我知道如何让一些软件正常工作。但我的问题是我有一大堆

$("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、数据类型)。你有别的办法吗?