Динамическое всплывающее окно с одинаковым идентификатором

Я пытаюсь динамически создавать всплывающие окна без одинаковых идентификаторов для каждого из них. Проблема в том, что при загрузке страницы первое всплывающее окно, в котором вы выбираете его идентификатор, становится идентификатором для следующих. Я не уверен, как эффективно закодировать это без этого.

Мой код:

// Display relative pop-ups to which link is clicked containing information about the field.
Y.delegate('click', function openPopUpInfo(e) {
    var panel,
    link = e.target.get('id'),
        content = Y.one('#' + link + 'Info');

    content.setStyle('display', 'block');
    panel = new Y.Panel({
        id: 'popUpPanel',
        centered: true,
        modal: true,
        visible: false,
        constrain: true,
        render: true,
        zIndex: 100,
        bodyContent: content,
        width: 350,
        height: 250,
        close: true,
        plugins: [Y.Plugin.WidgetAnim, Y.Plugin.OverlayKeepaligned],
        buttons: [{
            value: '',
            section: Y.WidgetStdMod.HEADER,
            action: function (e) {
                e.halt();
                panel.hide();
            }
        }]
    });

    panel.show();
}, '#interestfreetab', '.infoLink');

2 ответа

Как насчет простого счетчика?

var count = 0;
//existing code
id: 'popUpPanel' + count
//existing code
count++;

Установить глобальную переменную изначально как

numberOfPopUps=0;

затем, когда вы создаете новую панель, когда идентификатор объявлен, измените

panel = new Y.Panel({ id: 'popUpPanel',

в

panel = new Y.Panel({ id: 'popUpPanel'+numberOfPopups,

затем после увеличения декларации

numberOfPopUps++;
Другие вопросы по тегам