Javascript 如何减少重复的jQuery代码

Javascript 如何减少重复的jQuery代码,javascript,jquery,Javascript,Jquery,第一次张贴在这个伟大的网站这里 我想减少以下代码的数量,特别是因为我需要在将来添加更多的部分-我相信一定有一个简单的方法,但我只是没有看到它。谢谢你的帮助 $(document).ready(function(){ $(function(){ $('#iqdrive').click( function(){ $('#iqdrive-cont').sho

第一次张贴在这个伟大的网站这里

我想减少以下代码的数量,特别是因为我需要在将来添加更多的部分-我相信一定有一个简单的方法,但我只是没有看到它。谢谢你的帮助

$(document).ready(function(){

    $(function(){
            $('#iqdrive').click(
                    function(){
                                    $('#iqdrive-cont').show();
                    });
    });
    $(function(){
            $('#optiwave').click(
                    function(){
                                    $('#optiwave-cont').show();
                    });
    });     
    $(function(){
            $('#vario').click(
                    function(){

                                    $('#vario-cont').show();
                    });
    });     
    $(function(){
            $('#autostain').click(
                    function(){
                                    $('#autostain-cont').show();
                    });
    });     
    $(function(){
            $('#autoload').click(
                    function(){
                                    $('#autoload-cont').show();
                    });

    });     

}))

首先,您不需要嵌套
document.ready
函数(所有
$(function(){
都是冗余的,因为它相当于
document.ready
)。为了简化代码:

$(function() {
    $('#iqdrive, #optiwave, #vario, #autostain, #autoload').click(function() {
        $('#' + this.id + '-cont').show();
    });
});

所有内部
$(function())
调用都是不必要的,因为
$(function())
$(document).ready(function())
的别名。您的示例显示了相同类型任务的大量重复;这很容易合并

$(document).ready(function(){
  $('#iqdrive, #optiwave, #vario, #autostain, #autoload').click(function(){
    $($(this).attr("id") + "-cont").show();
  });
});

这样做的目的是注册对具有这些ID的元素的单击,然后单击,获取所单击元素的ID,附加
-cont
,并使用该ID作为选择器来获取要显示的一组元素。

很酷,谢谢-我知道它非常臃肿,这就是我来到这里的原因-这已经解决了一些问题:)