简体   繁体   English

该函数不会将参数传递给onclick

[英]The function does not pass parameters to onclick

Reactor code and I came across a small problem. 反应堆代码和我遇到了一个小问题。 I've read the value of variables from a prompt that runs on an onclick of a given element. 我已经从在给定元素的onclick上运行的提示中读取了变量的值。 Now I am trying to write a global function, containing all possible parameters and after typing, depending on where the function was called creates an element in the right place on the page and adds the entered parameters. 现在,我试图编写一个包含所有可能参数的全局函数,并在键入后根据调用函数的位置在页面上的正确位置创建一个元素,并添加输入的参数。 I applied here the switch, passed the parameters, although the element is not added to the additional box, for example, why? 我在这里应用了开关,并传递了参数,尽管该元素未添加到附加框中,例如,为什么?

 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> 

Your parameter should be a string. 您的参数应该是一个字符串。

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

And in your switch case, you are suppose to compare your parameter with a string only as like below. 在开关的情况下,假设仅将参数与字符串进行比较,如下所示。

switch (type) {      
    case "img":

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM