我想使用 AJAX 和Shadowbox加载一些内容
基本上我希望用户转到页面以防 javascript 关闭。所以这就是我想要做的: -
1) 取消点击事件,即用户不得转到其他页面。
2)在jQuery中使用ajax函数加载内容
3)在阴影框中显示内容
我的代码工作正常,直到使用 ajax 加载内容,但不显示影子框,我猜 URL 正在刷新,一切都变为空白。
jQuery(document).ready(function($){
// rounded corners
$('img').addClass('corner iradius16');
DD_roundies.addRule('#nav li a',4,true);
DD_roundies.addRule('.grid',6,true);
$('h2 a').bind('click', function() {
var id = $(this).attr('id');
$.ajax({
url: "/ajax-post.php?p="+id,
success: function(data){
Shadowbox.open({
content: data,
player: "html",
height: 350,
width: 350
});
}
});
return false;
});
更新 1
尝试了这段代码,一旦加载了shadowbox,文档就会重新加载并变白。
Shadowbox.init({
skipSetup: true,
players: ["html"]
});
// LOAD
jQuery(document).ready(function($){
// rounded corners
$('img').addClass('corner iradius16');
DD_roundies.addRule('#nav li a',4,true);
DD_roundies.addRule('.grid',6,true);
$('.post h2 a').bind('click', function() {
var id = $(this).attr('id');
$.ajax({
url: "<?php bloginfo( 'template_directory'); ?>/ajax-post.php?p="+id,
success: function(data){
show_box(data);
}
});
return false;
});
});
//shadowbox function show_box(html) { Shadowbox.open({ content: html, player: "html", height: 350, width: 350 }); }
更新 2
好的,得到了问题,我通过 ajax 获得的 html 中有一些 javascript,这就是页面重新加载的原因。
为什么会这样?有任何想法吗 ?