//deep linking
$.fn.ajaxAnim = function() {
$(this).animW();
$(this).html('<div class="load-prog">loading...</div>');
}
$("document").ready(function(){
contM = $('#main-content');
contS = $('#second-content');
$(contM).hide();
$(contM).addClass('hidden');
$(contS).hide();
$(contS).addClass('hidden');
function loadURL(URL) {
//console.log("loadURL: " + URL);
$.ajax({ url: URL,
beforeSend: function(){$(contM).ajaxAnim();},
type: "POST",
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contM).html(data);
$('.post-content').initializeScroll();
}
});
}
// Event handlers
$.address.init(function(event) {
//console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
}).change(function(event) {
evVal = event.value;
if(evVal == '/'){return false;}
else{
$.ajax({ url: $('[rel=address:' + evVal + ']').attr('href'),
beforeSend: function(){$(contM).ajaxAnim();},
type: "POST",
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contM).html(data);
$('.post-content').initializeScroll();
}});
}
//console.log("change");
})
$('.update-main a, a.update-main').live('click', function(){
loadURL($(this).attr('href'));
return false;
});
$(".update-second a, a.update-second").live('click', function() {
var link = $(this);
$.ajax({ url: link.attr("href"),
beforeSend: function(){$(contS).ajaxAnim();},
type: "POST",
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contS).html(data);
$('.post-content').initializeScroll();
}});
return false;
});
});
我正在使用jquery地址更新內容,同時保持有用的url。當點擊主導航欄中的鏈接時,url會被正確更新,但是當使用ajax動態加載鏈接時,url地址函數會中斷。jquery地址和實時方法
我已經做了'點擊'事件,允許通過動態加載的鏈接加載內容,但我似乎無法使地址事件偵聽器生效,但是這似乎是實現此功能的唯一方法。是我錯的語法如果我改變了:
$.address.change(function(event) {
這樣:
$.address.live('change', function(event) {
或不活法無法使用此插件的工作?
這*不是* .live()'如何工作。當一個事件到達事件處理器所在的DOM根目錄時,'.live()'監聽事件向上冒泡,它檢查它是否與事件綁定到的選擇器相匹配,如果它那麼它執行。它根本不在乎DOM元素是新的還是舊的,只是它匹配選擇器。 – 2010-04-03 11:20:44
好吧,我假設他知道現場也適用於dom – fmsf 2010-04-03 11:53:44