//deep linking
$("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,
type: "POST",
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contM).html(data);
$(contM).animW();
}
});
}
// Event handlers
$.address.init(function(event) {
//console.log("init: " + $('[rel=address:' + event.value + ']').attr('href'));
}).change(function(event) {
$.ajax({ url: $('[rel=address:' + event.value + ']').attr('href'),
type: "POST",
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contM).html(data);
$(contM).animW();
}});
//console.log("change");
})
$('.update-main a').live('click', function(){
loadURL($(this).attr('href'));
});
$(".update-second a").live('click', function() {
var link = $(this);
$.ajax({ url: link.attr("href"),
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contS).html(data);
$(contS).animW();
}});
});
});
我正在使用jquery和'addresses'插件来加载带有ajax的内容并保持分页。我遇到的问题是一些内容加载链接,旨在将内容加载到辅助窗口。
我正在使用.live()方法来允许jquery侦听加载到主内容div中的新链接。
直到为ajax加载的这些新链接调用.ajax()方法,方法开始,但在接收数据之前跟随原始链接。我假设问题出在客户端脚本中,但是对服务器的调用可能存在问题。我正在使用wordpress循环来解析url并生成通过jquery加载的html。
感谢您的任何提示!
答案 0 :(得分:4)
问题是,当您点击<a>
时,您的浏览器会说“嘿去那里”...需要通过添加return false;
(或e.preventDefault();
来停止脚本中的此行为),像这样:
$('.update-main a').live('click', function(){
loadURL($(this).attr('href'));
return false;
});
$(".update-second a").live('click', function() {
var link = $(this);
$.ajax({ url: link.attr("href"),
dataType: 'html',
data: {post_loader: 1},
success: function(data){
$(contS).html(data);
$(contS).animW();
}});
return false;
});
替代方案是这种格式:
$('.update-main a').live('click', function(e){
loadURL($(this).attr('href'));
e.preventDefault();
});