2016-09-04 4 views
0

Ich versuche, meinen Konverter zu beenden, und an einem Punkt hatte ich es funktioniert, aber jetzt wird ein Teil des Codes nicht funktionieren. Wie jede Konvertierung von LBS. Ich fand heraus, dass nicht verwandte Teile des Codes andere Teile beeinflussen, weil ich die wesentlichen Teile des Codes löschte und dann wieder teilweise wieder einfügte, um zu sehen, wo es versagte. Zum Beispiel, wenn ich nur den Teil des Codes, der LBS in andere Einheiten umwandelt, funktioniert es gut, wie Sie in den Beispielen unten sehen können, aber wenn ich die Konvertierung für Gramm, funktioniert es nicht. Warum wirken sich verschiedene Teile meines Codes gegenseitig aus, indem Sie sich in derselben Klickfunktion befinden?Warum wirken sich verschiedene Teile meiner JQuery auf andere Teile meiner JQuery aus?

var main = function() { 
    var bttn = $('.sbs'); 
    bttn.click(function(){ 
    var rslt = $('#result'); 
    var num = $('#nmbr').val(); 
    var inpt = $('#slct1').val(); 
    var outpt = $('#slct2').val(); 

    //Converstion from pounds 
    if(inpt == 'pounds'){ 
     if(outpt == 'grams') { 
     var pGrams6 = num * 453.59; 
     rslt.text(pGrams6); 
     } if(outpt == 'kiloGrams') { 
     var pKilo6 = num * 2.2; 
     rslt.text(pKilo6); 
     } if(outpt == 'ounces') { 
     var pOunce6 = num * 16; 
     rslt.text(pOunce6); 
     } if(outpt == 'milliGrams') { 
     var pMilo6 = num * 453592; 
     rslt.text(pMilo6); 
     } 
    } 

    //Conversion from grams 
    if(inpt = 'grams') { 
     if(outpt == 'pounds') { 
     var pPound5 = num/453.59; 
     rslt.text(pPound5); 
     } if(outpt == 'kiloGrams') { 
     var pKilo5 = num/1000; 
     rslt.text(pKilo5); 
     } if(outpt == 'ounces') { 
     var pOunce5 = num * 28.35; 
     rslt.text(pOunce5); 
     } if(outpt == 'milliGrams') { 
     var pMilo5 = num * 1000; 
     rslt.text(pMilo5); 
     } 
    } 
    }); 
} 

$(document).ready(main); 

FULL CODE: https://jsfiddle.net/qete67cz/

+0

wenn (inpt = 'Gramm') ist eine Zuweisung. – fbohorquez

+0

Fügen Sie auch etwas wie 'if (inpt === outpt) rslt.text (num)'. – redneb

Antwort

2

Diese Linie ist das Problem:

if(inpt = 'grams') { 

Sie == wollen, nicht =. Wie es ist, dass if Test wird immertrue sein, weil Sie eine nicht leere Zeichenfolge zuweisen.

Im Allgemeinen, wenn Sie etwas testen, um zu sehen, ob es ein Wert oder ein anderer Wert ist, sollten Sie wahrscheinlich if ... else if anstelle einer einfachen Sequenz von if Anweisungen verwenden.

Verwandte Themen