我使用這個插件飛出菜單:http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/jQuery的位置()調用
按鈕就像是一個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和更換格「東西」與新的內容(這本身含有的Quickfire鏈接)。
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);
}
});
正如預期的那樣,quickfire鏈接不再附加到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
});
}
});
幾乎在那裏!
的問題是,當我點擊新建按鈕的Quickfire,它的工作原理,但菜單出現在我的屏幕的左上角,而不是旁邊的按鈕!
我試着打印出該公司的Quickfire按鈕的「位置」。對於初始負載之一,它說361 X 527的後續者,他們都說0×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
});
}
});
});
我試圖「分離」的按鈕的Quickfire更換權之前的內容,然後重新插入。現在它並沒有把菜單放在左上角,而是將菜單放在了我做ajax調用之前的位置(我想這很有道理)。不完全正確的位置,但至少在地理上更接近 –
您能鏈接到您看到此問題的頁面嗎?對jsfiddle(http://jsfiddle.net/6VrgD/3/)的初步測試表明,在你的代碼的其他地方可能有錯誤... – Chris
不幸的是,它住在我的電腦上,客戶不希望我分享許多。但我添加了一些代碼。 –