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

时间:2017-08-08 07:28:00

标签: javascript

Reactor代码和我遇到了一个小问题。我从一个给定元素的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();
});
&#13;
<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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

您的参数应该是一个字符串。

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

在您的开关案例中,您可能只想将参数与字符串进行比较,如下所示。

switch (type) {      
    case "img":