首先,我對所有形式的javascript都很陌生,尤其是遠程AJAX。也就是說,在最後一天的過程中,我設法編寫了一個腳本,該腳本動態刷新單個div並將其替換爲另一個頁面上div的內容。從AJAX內容加載彩盒
但問題是,我的其他幾個腳本不能在ajax刷新的內容中工作。其中最重要的是「colorbox」。
今天晚上我花了幾個小時研究這個問題,並且看到很多關於.load,.live ...更新DOM刷新等的東西......但是說實話,大部分是目前我的頭腦已經過時了,我不知道從現在的代碼整合到哪裏開始。
我的Ajax刷新代碼如下(我的道歉,如果我沒有使用最好的做法,這是我第一次嘗試): -
$(function() {
$(".artist li.artist").removeClass("artist").addClass("current_page_item");
$("#rightcolumnwrapper").append("<img src='http://www.mywebsite.com/wp-content/images/ajax-loader.gif' id='ajax-loader' style='position:absolute;top:400px;left:190px;right:0px;margin-left:auto;margin-right:auto;width:100px;' />");
var $rightcolumn = $("#rightcolumn"),
siteURL = "http://" + top.location.host.toString(),
hash = window.location.hash,
$ajaxSpinner = $("#ajax-loader"),
$el, $allLinks = $("a");
$ajaxSpinner.hide();
$('a:urlInternal').live('click', function(e) {
$el = $(this);
if ((!$el.hasClass("comment-reply-link")) && ($el.attr("id") != 'cancel-comment-reply-link')) {
var path = $(this).attr('href').replace(siteURL, '');
$.address.value(path);
$(".current_page_item").removeClass("current_page_item");
$allLinks.removeClass("current_link");
$el.addClass("current_link").parent().addClass("current_page_item");
return false;
}
e.preventDefault();
});
$.address.change(function(event) {
$ajaxSpinner.fadeIn();
$rightcolumn.animate({ opacity: "0.1" })
.load(siteURL + event.value + ' #rightcolumn', function() {
$ajaxSpinner.fadeOut();
$rightcolumn.animate({ opacity: "1" });
});
});});
我希望有人可能還跟告訴我我需要對上述代碼進行一些修改,以便在刷新#rightcolumn的內容時加載colorbox。
這個問題還有第二部分。由於上面的代碼,我的圖片鏈接現在也受到hashtag的影響,這反過來又會阻止圖片本身在我應該想象的colorbox中正確加載。我怎樣才能防止這些圖像受到影響,並讓他們保持標準的URL。如果可能的話,我只想要上面的代碼來實現我的內部導航鏈接。
非常感謝的傢伙。我期待着你的回覆。
感謝您的答覆隊友......我實際上設法解決了很多試錯後的問題。我顯然使事情變得複雜,因爲刷新後的重新初始化是所有需要的......正如你所建議的那樣。乾杯! – gordyr