2014-03-04 36 views
-2

我試圖避免複製和粘貼在這裏。我有一個jQuery,這是一個。 submit和一個阿賈克斯是。 blursubmit有一些var和我想包含在blur函數中的其他位代碼,但我想避免複製和粘貼問題,我該如何做到這一點。包括一些jQuery代碼在另一個沒有複製和粘貼

提交

$('#guess').submit(function() { 

//下面這段代碼是想我需要在blur功能

 var buttonWidth=$('#guess button').width(); 
     var buttonCopy = $('#guessbutton').html(), 
     errorGuess = $('#guess button').data('error-guess'), 
     sendGuess = $('#guess button').data('send-guess'), 
     okGuess= $('#guess button').data('ok-guess'), 
     hasError = false; 
    } 

模糊

$('#number').blur(function() { 
    var number = $(this).val(); 

//我的東東,包括d包括來自submit代碼在這裏,但我不想複製並粘貼

} 

附: jquery和ajax都在一個文件中。

請指教

+1

然後嘗試編寫函數。並在任何地方調用該函數,如:var a = function(){... code ...};並稱爲fn a()'。簡單 – ankur140290

+0

因此在這兩個處理程序中包裝函數和調用函數的相關代碼 –

+0

@ A.Wolff我做了,但我仍然需要複製var buttonWidth = $('#contact-form button')。 \t \t \t \t VAR buttonCopy = $(「#聯繫形式按鈕」)。HTML(),'因爲它沒有得到包括當我把它在其他功能 – user3057514

回答

0

如果我明白你的問題,把你的代碼在一個單獨的功能如下::

//Might not be valid syntax, my javascript is a bit rusty as I haven't done any in a few months. But it gives you the idea. 
function wrapper(){ 
     var buttonWidth=$('#guess button').width(); 
     var buttonCopy = $('#guessbutton').html(), 
     errorGuess = $('#guess button').data('error-guess'), 
     sendGuess = $('#guess button').data('send-guess'), 
     okGuess= $('#guess button').data('ok-guess'), 
     hasError = false; 
} 
0

只需創建一個封裝了所有你需要,否則你將複製功能的包裝功能。

$('#guess').on('validate', function() { 
    var buttonWidth=$('#guess button').width(); 
    var buttonCopy = $('#guessbutton').html(), 
    errorGuess = $('#guess button').data('error-guess'), 
    sendGuess = $('#guess button').data('send-guess'), 
    okGuess= $('#guess button').data('ok-guess'), 
    hasError = false; 
} 
$('#guess').submit(function() { 
    $(this).trigger('validate'); 
}); 

$('#number').blur(function() { 
    var number = $(this).val(); 
    $('#guess').trigger('validate'); 
}); 
+0

我不是那麼喜歡javascript,而是我需要花費一些時間學習的東西之一。 – user3057514

+0

這個模式不僅適用於JavaScript,它適用於幾乎所有的語言。代碼重用是一個非常重要的概念,有很多方法可以做到這一點。如果您想了解更多關於代碼重用的信息,軟件設計模式是一件好事。 – BenM

+0

感謝您的諮詢 – user3057514

0

只是嘗試

function yourName(){ 
     var buttonWidth=$('#guess button').width(); 
     var buttonCopy = $('#guessbutton').html(), 
     errorGuess = $('#guess button').data('error-guess'), 
     sendGuess = $('#guess button').data('send-guess'), 
     okGuess= $('#guess button').data('ok-guess'), 
     hasError = false; 
    } 

然後打電話給你的函數...

$('#guess').submit(function() { 
     yourName(); 
    } 

    $('#number').blur(function() { 
     var number = $(this).val(); 
     yourName(); 
    } 

祝您好運

+0

我在所有的答案中意識到,我仍然需要複製var buttonWidth = $('#contact-form button')。 \t \t \t \t var buttonCopy = $('#contact-form button')。html()「,因爲它沒有包含在'submit'和'blur'函數中。 – user3057514

相關問題