jQuery UI, JavaScript, param и (возможно) закрытие - PullRequest
0 голосов
/ 16 февраля 2012

Вот мой пример JavaScript:

  function createButtons(idDialog, tab, fn, param) {
    var btns = new Array();
    for (var i = 0; i < tab.length; i++) {
      btns.push( {
        text: (tab[i]>0 ? '+':'')+tab[i],
        click: function(a) {
          console.log(fn);
          console.log(param);
          fn(param);
          $(this).dialog("close");
        }
      });
    };
    btns.push( {
      text: "Close",
      click: function() {
        $(this).dialog("close");
      }
    });
    $(idDialog).dialog('option', 'buttons', btns);
  }

Параметры: fn - это функция, которая должна вызываться при каждом нажатии кнопки, а param - это параметр, который должен передаваться функции.

Когда я использую этот код, console.log(fn) говорит undefined, а console.log(param) говорит undefined. Это не напоминает параметр.

Как мне поступить?

1 Ответ

0 голосов
/ 01 марта 2012

Я попросил Джошнаро ответить, но он не так, вот решение, которое он дал, которое отлично работает:

function createButtons(idDialog, tab, fn, param) {
    var btns = new Array();
    for (var i = 0; i < tab.length; i++) {
      btns.push( {
        text: (tab[i]>0 ? '+':'')+tab[i],
        click: function(a) {
          console.log(fn);
          console.log(param);
          fn(param);
          $(this).dialog("close");
        }
      });
    };
    btns.push( {
      text: "Close",
      click: function() {
        $(this).dialog("close");
      }
    });
    $(idDialog).dialog('option', 'buttons', btns);
  }


createButtons(
    "#Hello",
    ['Save', 'Load'],
    function(parameter) {
        alert(parameter);
    },
    'World'
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...