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.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関数show_box(html){Shadowbox.open({content:html、player: "html"、height:350、width:350}); }
更新2
さて、prbolemを取得しました。ajaxを介して取得しているhtmlには、JavaScriptが含まれているため、ページがリロードされます。
なぜこうなった ?何か案は ?