Я заменил традиционные элементы формы select/option изящным небольшим всплывающим окном при нажатии на изображение, вызывающее срабатывание. Страница предназначена для целей бухгалтерского учета, поэтому следует ожидать несколько позиций. Я написал javascript, который будет динамически генерировать новые элементы выбора/опции позиции. Когда страница загружается, загружается начальный набор вариантов, и пользователь может щелкнуть по ним, получить всплывающее окно с некоторыми вариантами, выбрать один, а затем окно закроется. Переход к следующему выбору и так далее и тому подобное. Я добавил livequery в свой код для этих динамических элементов. Однако... кажется, что livequery("click"...) срабатывает независимо от того, где пользователь щелкает на странице. Очень расстраивает.
Я читал здесь, насколько великолепен «live()» в jQuery 1.3, но я не могу полностью обновиться до jquery 1.3, потому что пользовательский файл JS зависит от 1.2, поэтому об использовании live() не может быть и речи. Я вызвал плагин livequery(), и мне действительно нужно понять, правильно ли я его использую.
Я опубликую частичный код. Там просто слишком много, чтобы опубликовать все это.
По сути, я ищу элементы div, начинающиеся с «пузыря», а затем номер. Затем запустите событие на каждом из них. Только пузырь 1 является статическим, 2 и выше — динамическими. Я пропустил все использование livequery?
>$jb('div[id^="bubble"]').each(function () {
> var divid = $jb('div[id^="bubble"]').filter(":first").attr("id");
>var pref = "bubble";
>var i = divid.substring((pref.length));
>var trigger = $jb('#trigger' + i, this);
>var popup = $jb('#pop'+ i, this).css('opacity', 0);
>var selectedoption = $jb('selectedOption' + i, this);
>var selectedtext = $jb('selectedOptionText' + i, this);
>$jb([trigger.get(0), popup.get(0)]).livequery("click",
> function () {
>//alert(i);
// code removed for brevity (just the contents of the popups)
>});