我在将.html页面(内置JavaScript)加载到div元素时遇到问题。
这是我的div:
<div class="content"></div>
这是我的php:
<?php
if(!$_POST['page']) die("0");
$page = (int)$_POST['page'];
if(file_exists('pages/page_'.$page.'.html'))
echo file_get_contents('pages/page_'.$page.'.html');
else echo 'There is no such page!';
?>
这是我的剧本:
var default_content="";
$(document).ready(function(){
checkURL();
$('ul li a').click(function (e){
checkURL(this.hash);
});
//filling in the default content
default_content = $('.content').html();
setInterval("checkURL()",250);
});
var lasturl="";
function checkURL(hash)
{
if(!hash) hash=window.location.hash;
if(hash != lasturl)
{
lasturl=hash;
// FIX - if we've used the history buttons to return to the homepage,
// fill the pageContent with the default_content
if(hash=="")
$('.content').html(default_content);
else
loadPage(hash);
}
}
function loadPage(url)
{
url=url.replace('#page','');
$('.content').css('visibility','visible');
$.ajax({
type: "POST",
url: "load_page.php",
data: 'page='+url,
dataType: "html",
success: function(msg){
if(parseInt(msg)!=0)
{
$('.content').html(msg);
}
}
});
}
加载页面时,不执行.html页面内的JavaScript代码。 如果我点击浏览器重新加载按钮,则会执行JavaScript代码。
如何使用jquery在页面内执行JavaScript?
答案 0 :(得分:3)
你的脚本没有意义
$.ajax({
type: "POST",
url: "load_page.php",
data: 'page='+url,
dataType: "html",
success: function(d){
$('.content').html(d);
}
});
更好,并将执行从ajax加载的javascrit页面
答案 1 :(得分:1)
jQuery事件处理程序是否绑定了live()
?
如果在加载页面后将javascript / jquery附加到dom,则不会附加/执行正常click()
,change()
个事件。
您需要使用live()
附加这些事件。
$('#some_element').live('click', function(){});
只要元素附加到页面, live()
就会初始化事件处理程序。