Элемент будущего JQuery Colorbox - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть html со ссылкой:

<a id="myLink" href="/aa.html" title="New Bangoo" class="bangoo">Bangoo</a>

, и я включаю js-файл со следующими строками:

$("#myLink").live('click', function() { 
var typi = 'Ginga';       
    $("#typeList").append('<option>' + typi + '</option>');        
});

aa.html имеет следующее:

<label for="typeList">Type</label>
<div>
   <select id="typeList"></select>
</div>

aa.html открывается в палитре.Все в порядке, но я не могу добавлять типы для выбора списка.У него нет элементов, когда он заканчивает открываться.Раньше работал, но сейчас не работает.Это может быть из-за того, что файл js пытается добавить в список перед загрузкой html?

Есть идеи?

РЕДАКТИРОВАТЬ:

Когда я это делаюработает:

$("#myLink").live('click', function() { 
alert('Wait Here!');
var typi = 'Ginga';       
    $("#typeList").append('<option>' + typi + '</option>');        
});

Когда я предупреждаю что-либо, оно ждет и в это время у него есть достаточно времени, чтобы добавить список выбора.Как я могу убедиться, что внешняя ссылка загружена, чтобы я мог начать добавлять?

PS: Моя проблема заключается в том, что я пытаюсь добавить элемент HTML, который загружается после нажатия кнопки myLink.aa.html не помещается в dom в начале, я загружаю его из внешнего источника.

После загрузки внешней страницы на экране в списке выбора нет элементов.Когда я пытаюсь запустить тот же код из Firebug, он добавляет опции для выбора списка и работает.Это означает, что код работает, но есть проблема с синхронизацией и асинхронизмом, из-за которой я хочу добавить элементы в список выбора, прежде чем он будет расположен в дереве dom.Я должен ждать загрузки и после этого запустить мой код.

Ответы [ 3 ]

2 голосов
/ 10 ноября 2011
try this
$("#myLink").live('click', function(e) {
e.preventDefault(); 
var typi = 'Ginga';       
    $("#typeList").append($('<option></option>').val(typi ).html(typi )) ;   

});
1 голос
/ 10 ноября 2011

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

0 голосов
/ 10 ноября 2011

1001 * попробовать *

$("#myLink").live('click', function(e) { 
e.preventDefault();
var typi = 'Ginga';       
    $("<option/>",{text:typi,value:typi}).appendTo("#typeList");        
});

DEMO

...