Php Javascript window.onload不会在每台计算机上加载
我在页面上添加了一些javascript,以根据用户选择更新特定的div 我选择这种方法,而不是简单地通过PHP从数据库加载信息,因为当页面通过AJAX打开时,用户可以动态地更改它 div是Php Javascript window.onload不会在每台计算机上加载,php,javascript,jquery,codeigniter,Php,Javascript,Jquery,Codeigniter,我在页面上添加了一些javascript,以根据用户选择更新特定的div 我选择这种方法,而不是简单地通过PHP从数据库加载信息,因为当页面通过AJAX打开时,用户可以动态地更改它 div是div。它调用的函数是下面的update\u fight()函数。我包括了整个.js文件以供参考,以防我遗漏了一些东西 window.onload = (function(){ update_fight(); }); function get_main(page){ $.ajax({
div。它调用的函数是下面的update\u fight()
函数。我包括了整个.js文件以供参考,以防我遗漏了一些东西
window.onload = (function(){
update_fight();
});
function get_main(page){
$.ajax({
type: "POST",
async: false,
url: 'http://rickymason.net/d4beta/welcome/loadmain',
dataType: 'json',
data: { page: page },
success: function(content){
var html = '';
html += content['content'];
$('#main').html(html);
}
});
}
function pop_zone(page){
$.ajax({
type: "POST",
async: false,
url: 'http://rickymason.net/d4beta/welcome/popzone',
dataType: 'json',
data: { page: page },
success: function(content){
var html = $(content['content'])
var $dialog = $('<div></div>')
.html(html)
.dialog({
autoOpen: false,
title: 'Select Zone',
modal: true,
width: 800,
resizable: false
});
$dialog.dialog('open');
}
});
}
$(document).ready(function() {
$("#pop_zone").dialog({autoOpen:false});
});
function update_fight() {
$.ajax({
type: "POST",
async: false,
url: 'http://rickymason.net/d4beta/welcome/loadmain',
dataType: 'json',
data: { page: 'get_zone' },
success: function(content){
var html = '';
html += content['content'];
$('#fight').html(html);
}
});
}
function sql_zone(zone) {
$.ajax({
type: "POST",
async: false,
url: 'http://rickymason.net/d4beta/welcome/sql_zone',
dataType: 'json',
data: { zone: zone },
success: function(){
update_fight();
}
});
}
$("#changezone").live('click', function() {
var page = 'change';
pop_zone(page);
});
$(".zone").live("click",function() {
var zone = this.id;
sql_zone(zone);
alert ( "Updated: Zone " + this.id );
});
get\u zone()
可以在这里看到:
public function loadmain()
{
$content = $this->main_model->get_zone();
$page['content'] = $content;
echo json_encode($page);
}
public function get_zone()
{
$user_id = $this->tank_auth->get_user_id();
$itemroll = $this->db->query("SELECT current_zone, z.name FROM user_load ul
INNER JOIN zones z
ON z.id = ul.current_zone
WHERE ul.user_id = $user_id");
$result = $itemroll->row_array();
$zone['current_zone']= $result['current_zone'];
$zone['name'] = $result['name'];
//HTML Formatting
$content = '';
$content .= "<div id='change'><input type='button' id='changezone' value='Zone'></input></div> ";
$content .= "<div id='zonename'><a href='". base_url()."welcome/fight'>". $zone['name']."</a></div>";
return $content;
}
公共函数get_zone()
{
$user_id=$this->tank_auth->get_user_id();
$itemroll=$this->db->query(“从user\u load ul选择当前区域,z.name
内连接区z
在z.id=ul.current_区域上
其中ul.user_id=$user_id”);
$result=$itemroll->row_数组();
$zone['current_zone']=$result['current_zone'];
$zone['name']=$result['name'];
//HTML格式
$content='';
$content.=”;
$content.=”;
返回$content;
}
是否存在任何明显的问题,可能导致在偶尔的页面加载或新页面加载期间无法工作
这肯定会出现在所有3种浏览器中,但在IE7中更为一致。您有jQuery,所以请使用它;) 改变
window.onload = (function(){
到
如果您使用的是jQuery,那么我建议挂接:
$(window).load(function() {
update_fight();
});
如果您想要JavaScript,那么:
window.onload = function() {
update_fight();
};
参考资料:
$(document).ready(function(){
更具可读性,因为它确实描述了它的功能。你认为这可能会导致页面加载出现一些差异吗?@Florent:but$(function(){});更快。@Ricky Mason:是的,window.onload是页面老化的时刻,但是使用$(function())在加载整个DOM之前,不会执行您的代码。谢谢!我将尝试在允许投票作为答案的时间内重新创建问题
window.onload = function() {
update_fight();
};