Функция не передает параметры в onclick

1

Код реакторов, и я столкнулся с небольшой проблемой. Я прочитал значение переменных из приглашения, которое выполняется при 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 , в настоящее время вы отправляете img как переменную, которая выдает Uncaught ReferenceError: img is not defined
  • 0
    Возможный дубликат JQuery .on ("click", function ()) не работает
Теги:

1 ответ

2
Лучший ответ

Ваш параметр должен быть строкой.

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

И в вашем случае коммутатора вы можете сравнить свой параметр со строкой только так, как показано ниже.

switch (type) {      
    case "img":
  • 0
    Спасибо мужик, все работает;) Вы решили мою проблему
  • 0
    @ Монтана, пожалуйста, отметьте это как ответ, если это поможет.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню