Я использую этот плагин для всплывающих меню: http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/
Кнопка находится внутри элемента div следующим образом:
<div class="stuff">
some stuff
<a class="quickfire">menu</a>
</div>
Я применяю его к какой-то ссылке, например, так:
jQuery('.quickfire').menu({
content: jQuery('#search-engines').html(), // grab content from this page
showSpeed: 400
});
Где .quickfire - имя класса ссылки.Пока все хорошо, работает.
Однако пользователь также может инициировать вызов AJAX, который будет извлекать кучу HTML с сервера и заменять div "stuff" новым контентом (который сам по себе будет содержать быстрый запуск).ссылка).
jQuery.ajax({
url: 'ajax_file.php',
data: {
action: 'create_option_new_version',
id: jQuery('#qid').val(),
div: jQuery("#addMoreOptions").parent().parent().attr('id'),
cleanOutput: true
},
success: function(data, textStatus, jqXHR){
jQuery(".stuff").html(data);
}
});
Как и ожидалось, ссылка быстрого огня больше не присоединяется к меню jQuery.Итак, я связываю его снова каждый раз:
jQuery.ajax({
url: 'ajax_file.php',
data: {
action: 'create_option_new_version',
id: jQuery('#qid').val(),
div: jQuery("#addMoreOptions").parent().parent().attr('id'),
cleanOutput: true
},
success: function(data, textStatus, jqXHR){
jQuery(".stuff").html(data);
var position = jQuery('.quickfire').position();
console.log("left: " + position.left + " top: " + position.top);
jQuery('.quickfire').menu({
content: jQuery('#search-engines').html(), // grab content from this page
showSpeed: 400
});
}
});
Почти здесь!
Проблема в том, что, когда я нажимаю на только что созданную кнопку быстрого запуска, она работает, но менюпоявляется в левом верхнем углу моего экрана, а не рядом с кнопкой!
Я попытался распечатать «положение» кнопки быстрого запуска.Для начальной загрузки один сказал 361 x 527. Для последующих они все говорят 0 x 320
Вот реальный код:
jQuery("#addMoreOptions").live('click',function(){
jQuery(".lastPollOptionInput").removeClass("lastPollOptionInput");
jQuery.ajax({
url: 'ajax_file.php',
data: {
action: 'create_option_new_version',
id: jQuery('#qid').val(),
div: jQuery("#addMoreOptions").parent().parent().attr('id'),
cleanOutput: true
},
success: function(data, textStatus, jqXHR){
jQuery("#addMoreOptions").parent().parent().html(data);
jQuery('.quickfire').fgmenu({
content: jQuery('#search-engines').html(), // grab content from this page
showSpeed: 400
});
}
});
});