2017-08-08 129 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);'它應該是一個字符串,並且在'之開關檢查字符串,目前你發送'img'作爲變量,拋出'未捕獲的ReferenceError:IMG不defined' –

+0

[JQuery .on(「click」,function())可能重複不起作用](https://stackoverflow.com/questions/19192376/jquery-onclick-function-doesnt-work) –

回答

2

你的參數應該是一個字符串。

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

而在您的開關盒中,您將假設僅將您的參數與字符串進行比較,如下所示。

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

謝謝你,作品;)你解決了我的問題 – Montana

+0

@Montana你歡迎,標記爲答案,如果有幫助。 –

+0

我知道,但我可以在3分鐘後做到這一點 – Montana