Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
寻找一种更有效的方法来编写一些基本的if-else jQuery脚本_Jquery_Performance - Fatal编程技术网

寻找一种更有效的方法来编写一些基本的if-else jQuery脚本

寻找一种更有效的方法来编写一些基本的if-else jQuery脚本,jquery,performance,Jquery,Performance,我觉得我的脚本真的是多余的,可以更有效地编写。如果有人有更好的方法,请分享 基本上,我是根据使用if-else语句选择的单选按钮来显示和隐藏一个div 这是JQuery //SUMMARY REVIEW DROPDOWN MODULES(FILTER-DROPDOWN) $(function () { //Values of checked radio buttons var cd_empty = $('input[id=m4]'); var adr_empty = $('inpu

我觉得我的脚本真的是多余的,可以更有效地编写。如果有人有更好的方法,请分享

基本上,我是根据使用if-else语句选择的单选按钮来显示和隐藏一个div

这是JQuery

//SUMMARY REVIEW DROPDOWN MODULES(FILTER-DROPDOWN)
$(function () {
   //Values of checked radio buttons
  var cd_empty = $('input[id=m4]');
  var adr_empty = $('input[id=m2]');
  var ocpy_empty = $('input[id=m1]');
  var revpar_empty = $('input[id=m3]');
  var cd_checked = $('input[id=m4]:checked', '.ddm-inputs').val();
  var adr_checked = $('input[id=m2]:checked', '.ddm-inputs').val();
  var ocpy_checked = $('input[id=m1]:checked', '.ddm-inputs').val();
  var revpar_checked = $('input[id=m3]:checked', '.ddm-inputs').val();
  var module2 = $('.dd-module-2');

   if(cd_checked === 'on') {
    module2.fadeIn();
   }
  // else {
  //   module2.fadeOut();
  // }

  $(cd_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its already open');
          preventDefault(e);
        }
        else {
          module2.slideToggle();
        }
      }

  }); 

  $(adr_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  }); 

  $(revpar_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  }); 

  $(ocpy_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  }); 

}))

首先,这些函数的作用完全相同:

$(adr_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  }); 

  $(revpar_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  }); 

  $(ocpy_empty).click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  });
您可以将它们更改为相同的函数,也可以取出var选择器。因此,替换为:

$('input#m1, input#m2, input#m3').click(
    function(e){
      if ($(this).is(':checked')){
        if(module2.css('display') === 'block') {
          // module2.slideUp();
          // alert('its open');
          module2.slideToggle();
        }
        else {
          // alert('its not open');
          module2.hide();
        }
      }
  }); 

您已经可以看到您的代码开始变得更干净。。。这将为重新分解提供一个良好的开端。

我意识到我不需要所有变量。当您分配变量时,它们已经是jQuery对象,您不需要用jQuery重新包装它们。此外,显示HTML;jQuery本身或多或少是无用的,因为我们无法猜测“更好”的技术。为什么属性等于选择器而不是id选择器?既然有多个类,为什么不使用它们呢?要添加到这一点,您还可以使用
以选择器开始
$('input[id^=“m”]”)
缩短代码事件:)不幸的是,这在这种情况下不起作用,因为有一个“m4”不遵循相同的模式。好主意,不过:)