2017-08-08 10 views
1

原子炉のコードと私は小さな問題に出くわしました。私は与えられた要素のonclickで実行されるプロンプトから変数の値を読みました。今では、すべての可能なパラメータを含むグローバル関数を作成しようとしています。そして、関数が呼び出された場所に応じて、入力後に、ページの適切な場所に要素を作成し、入力されたパラメータを追加します。私はここでスイッチを適用し、要素を追加のボックスに追加しませんが、パラメータを渡しました。たとえば、なぜですか?この関数はonclickにパラメータを渡しません

var overlay = $("#overlay"); 
 
var message = $("#message"); 
 

 
function popupshow() { 
 
    overlay.css("display", "block"); 
 
} 
 

 
function popuphide() { 
 
    overlay.css("display", "none"); 
 
} 
 

 
function params(type) { 
 
    param1 = $("#param1").val(); 
 
    param2 = $("#param2").val(); 
 
    param3 = $("#param3").val(); 
 
    param4 = $("#param4").val(); 
 
    param5 = $("#param5").val(); 
 
    param6 = $("#param6").val(); 
 

 
    switch (type) { 
 
    
 
    case img: 
 
     $("#additional-box").append('<img src="' + param6 + '" style="width: ' + param2 + 'px; height: ' + param3 + 'px;">'); 
 
     break; 
 

 
    case otherimg: 
 
     $("#other-photos").append('<img src="' + param6 + '" style="width: ' + param2 + 'px; height: ' + param3 + 'px;">'); 
 
     break; 
 

 
    case section: 
 
     $("#new_section").append('<div class="sekcja" style="width: ' + param2 + 'px; height: ' + param3 + 'px; background: #' + param4 + '; color: #' + param5 + ';"></div>'); 
 
     break; 
 

 
    case gallery: 
 
     $("#gallery").append('<img src="' + param6 + '" />'); 
 
     break; 
 
    } 
 
} 
 

 
$("#add-params").on("click", function() { 
 
    params(img); 
 
}); 
 

 
$("#additional-img").on("click", function() { 
 
    popupshow(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="overlay"> 
 
    <div id="message"> 
 
    <p id="m-title">Params</p> 
 
    <input type="text" placeholder="Section title" name="param1" id="param1" /> 
 
    <input type="text" placeholder="Element width" name="param2" id="param2" /> 
 
    <input type="text" placeholder="Element height" name="param3" id="param3" /> 
 
    <input type="text" placeholder="Element background" name="param4" id="param4" /> 
 
    <input type="text" placeholder="Element color" name="param5" id="param5" /> 
 
    <input type="text" placeholder="Source" name="param6" id="param6" /> 
 
    <button type="button" id="add-params">Add to template</button> 
 
    </div> 
 
</div> 
 

 
<div id="additional-box"> 
 
</div> 
 

 
<div id="additional-img"> 
 
    <button type="button">Add image</button> 
 
    <span>Image adding is optional.</span> 
 
</div>

+1

'paramsは(IMG);'それは文字列で、かつ 'switch'内の文字列をチェックし、現在は'捕捉されないにReferenceErrorをスロー変数として 'img'を送っている必要があります。IMGはdefined'ではありません –

+0

[JQuery .on( "click"、function())の可能な複製ができません](https://stackoverflow.com/questions/19192376/jquery-onclick-function-doesntwork) –

答えて

2

あなたのパラメータは文字列でなければなりません。

スイッチのケースでは、以下のようにパラメータを文字列と比較すると仮定します。

switch (type) {  
    case "img": 
+0

ありがとうございました。あなたが私の問題を解決しました – Montana

+0

@モンタナあなたが歓迎したら、それを答えとしてマークしてください。 –

+0

私は知っているが、私は3分後にこれを行うことができる – Montana

関連する問題