2016-04-26 44 views
-2

我得到了一個Jquery函數以在兩個按鈕之間同時切換,但這是一種「髒」的編寫代碼的方式,我的老闆會說。我不想調用函數或不傳遞Jquery參數,是否有一個簡單或更好的方法來編寫這個函數,因爲我完全是編程新手? 下面Jquery的避免Jquery自我調用功能

var startStopBtn = function() { 

    var startBtn = $('#timerStart'); 
    var stopBtn = $('#timerStop').hide(); 

    var Start = function() { 
     startBtn.hide(); 
     stopBtn.show(); 
    }; 

    var Stop = function() { 
     var remarks2 = $(".textArea-one").val(); 
     if (remarks2 !== "") { 
     startBtn.show(); 
     stopBtn.hide(); 
     } 
    }; 
    return { 
     Start: Start, 
     Stop: Stop 
    }; 
}(jQuery); 
jQuery('#timerStart').on('click', startStopBtn.Start); 
jQuery('#timerStop').on('click', startStopBtn.Stop); 
+0

看來你問的代碼審查,這將是對[codereview.se]爲宜。請回顧[問],因爲這似乎是一個高度置評的問題。 – zzzzBov

回答

0

我覺得代碼可以以多種方式來完成,這只是其中之一。

看起來像首先你想隱藏stopBtn所以創建一個函數來做到這一點。在頁面加載時調用該函數或創建一個函數,並在頁面加載時調用它。在這裏我創建了一個你應該隨時調用的函數。如果你不想這樣做,只需刪除該功能。

然後在「點擊」#timerStart或#timerStop時完成兩個不同的功能。

這是我的版本,但我敢肯定,它可以改善:

function startStopBtn(){ 
     $('#timerStop').hide(); 
    }; 

    $('#timerStart').on('click', function(){ 
     $('#timerStart').hide(); 
     $('#timerStop').show(); 
    }); 

    $('#timerStop').on('click', function(){ 
     var remarks2 = $(".textArea-one").val(); 
      if (remarks2 !== "") { 
      $('#timerStart').show(); 
      $('#timerStop').hide(); 
      } 
    });