|
|
|
| Есть скрипт. Если потребуется могу дать, но пока опишу общую проблему:
Дана - таблица разбитая на ячейки (слоты), есть div в который подгружаются файлы. При кликанье на определённый слот подгружается нужный php файл, в котором идёт выборка из Базы Данных. Я навесил событие при помощи jQuery $("a").click(function(){...}), т.е. при клике на подгруженную информацию, она появляется уже в соотвествующем слоте. Ссылку я сделал href="#".
Теперь проблема: при первом запуске скрипта в Опере, всё работает нормально, всё кликается, всё считается, всё подгружается и перетаскивается, при клике на ссылку показывается что-то типа www.domainname.ru/programa/index.html# . Но когда выключаешь комп, потом загружаешь снова и запускаешь Оперу, то работает уже не всё, а конкретно при нажатии на ссылку скрипт просто тупо перезагружается и вообще в адресной строке уже нет этого "#", а просто тупо www.domainname.ru/programa/index.html
В ИЕ 7 всё работает безотказно.
Вопрос - из-за чего это может быть? Я думал что это может быть из-за кэша, поставил на страницу сл. код:
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
но остаётся всё таже фигня :( | |
|
|
|
|
|
|
|
для: DiMoN_TD
(02.04.2008 в 10:29)
| | код в студию =) | |
|
|
|
|
|
|
|
для: Antohins
(02.04.2008 в 11:02)
| | и по умолчанию кеширование отключено в jquery | |
|
|
|
|
|
|
|
для: Antohins
(02.04.2008 в 11:02)
| | Итак сам скрипт со страницы index.html:
<script type="text/javascript" src="ajax/jquery-1.2.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var arr = new Array();
arr["ok_ring1"] = 0;
arr["ok_head"] = 0;
arr["ok_neck"] = 0;
arr["ok_ring2"] = 0;
arr["ok_body"] = 0;
arr["ok_back"] = 0;
arr["ok_right_arm"] = 0;
arr["ok_foot"] = 0;
arr["ok_left_arm"] = 0;
arr["id_ring1"] = "";
arr["id_head"] = "";
arr["id_neck"] = "";
arr["id_ring2"] = "";
arr["id_body"] = "";
arr["id_back"] = "";
arr["id_right_arm"] = "";
arr["id_foot"] = "";
arr["id_left_arm"] = "";
arr["id_old_ring1"] = "-2";
arr["id_old_head"] = "-2";
arr["id_old_neck"] = "-2";
arr["id_old_ring2"] = "-2";
arr["id_old_body"] = "-2";
arr["id_old_back"] = "-2";
arr["id_old_right_arm"] = "-2";
arr["id_old_foot"] = "-2";
arr["id_old_left_arm"] = "-2";
arr["old_mod_atack_ring1"] = "0";
arr["old_mod_def_ring1"] = "0";
arr["old_mod_sm_ring1"] = "0";
arr["old_mod_knol_ring1"] = "0";
arr["old_mod_luck_ring1"] = "0";
arr["old_mod_bd_ring1"] = "0";
arr["old_mod_ini_ring1"] = "0";
arr["old_mod_atack_head"] = "0";
arr["old_mod_def_head"] = "0";
arr["old_mod_sm_head"] = "0";
arr["old_mod_knol_head"] = "0";
arr["old_mod_luck_head"] = "0";
arr["old_mod_bd_head"] = "0";
arr["old_mod_ini_head"] = "0";
arr["old_mod_atack_neck"] = "0";
arr["old_mod_def_neck"] = "0";
arr["old_mod_sm_neck"] = "0";
arr["old_mod_knol_neck"] = "0";
arr["old_mod_luck_neck"] = "0";
arr["old_mod_bd_neck"] = "0";
arr["old_mod_ini_neck"] = "0";
arr["old_mod_atack_ring2"] = "0";
arr["old_mod_def_ring2"] = "0";
arr["old_mod_sm_ring2"] = "0";
arr["old_mod_knol_ring2"] = "0";
arr["old_mod_luck_ring2"] = "0";
arr["old_mod_bd_ring2"] = "0";
arr["old_mod_ini_ring2"] = "0";
arr["old_mod_atack_body"] = "0";
arr["old_mod_def_body"] = "0";
arr["old_mod_sm_body"] = "0";
arr["old_mod_knol_body"] = "0";
arr["old_mod_luck_body"] = "0";
arr["old_mod_bd_body"] = "0";
arr["old_mod_ini_body"] = "0";
arr["old_mod_atack_back"] = "0";
arr["old_mod_def_back"] = "0";
arr["old_mod_sm_back"] = "0";
arr["old_mod_knol_back"] = "0";
arr["old_mod_luck_back"] = "0";
arr["old_mod_bd_back"] = "0";
arr["old_mod_ini_back"] = "0";
arr["old_mod_atack_right_arm"] = "0";
arr["old_mod_def_right_arm"] = "0";
arr["old_mod_sm_right_arm"] = "0";
arr["old_mod_knol_right_arm"] = "0";
arr["old_mod_luck_right_arm"] = "0";
arr["old_mod_bd_right_arm"] = "0";
arr["old_mod_ini_right_arm"] = "0";
arr["old_mod_atack_foot"] = "0";
arr["old_mod_def_foot"] = "0";
arr["old_mod_sm_foot"] = "0";
arr["old_mod_knol_foot"] = "0";
arr["old_mod_luck_foot"] = "0";
arr["old_mod_bd_foot"] = "0";
arr["old_mod_ini_foot"] = "0";
arr["old_mod_atack_left_arm"] = "0";
arr["old_mod_def_left_arm"] = "0";
arr["old_mod_sm_left_arm"] = "0";
arr["old_mod_knol_left_arm"] = "0";
arr["old_mod_luck_left_arm"] = "0";
arr["old_mod_bd_left_arm"] = "0";
arr["old_mod_ini_left_arm"] = "0";
$("td").click(function(){
var id_name = this.id;
if ($("#"+this.id).text() != false && this.id != "not"){
$("input").each(function(){
if (this.name == 'atack'){
this.value = this.value*1 - arr["old_mod_atack_"+id_name]*1;
}
if (this.name == 'def'){
this.value = this.value*1 - arr["old_mod_def_"+id_name]*1;
}
if (this.name == 'sm'){
this.value = this.value*1 - arr["old_mod_sm_"+id_name]*1;
}
if (this.name == 'knol'){
this.value = this.value*1 - arr["old_mod_knol_"+id_name]*1;
}
if (this.name == 'luck'){
this.value = this.value*1 - arr["old_mod_luck_"+id_name]*1;
}
if (this.name == 'bd'){
this.value = this.value*1 - arr["old_mod_bd_"+id_name]*1;
}
if (this.name == 'ini'){
this.value = this.value*1 - arr["old_mod_ini_"+id_name]*1;
}
});
$("#"+this.id).html(" ");
arr["id_old_"+id_name] = "-2";
arr["old_mod_atack_"+id_name] = "0";
arr["old_mod_def_"+id_name] = "0";
arr["old_mod_sm_"+id_name] = "0";
arr["old_mod_luck_"+id_name] = "0";
arr["old_mod_bd_"+id_name] = "0";
arr["old_mod_ini_"+id_name] = "0";
arr["ok_"+id_name] = 0;
}
$("#load").load("cloth/"+id_name+".php",null, function() {
$("a").click(function(){
var id_a = this.id;
var name_a = this.name;
arr["id_"+id_name] = id_a;
var mod_atack = $("#"+this.id).attr("mod_atack");
var mod_def = $("#"+this.id).attr("mod_def");
var mod_sm = $("#"+this.id).attr("mod_sm");
var mod_knol = $("#"+this.id).attr("mod_knol");
var mod_luck = $("#"+this.id).attr("mod_luck");
var mod_bd = $("#"+this.id).attr("mod_bd");
var mod_ini = $("#"+this.id).attr("mod_ini");
var cont = $("#"+id_a).text();
$("td").each(function(){
if(name_a == this.id){
$(this).html(cont);
}
});
if (arr["id_"+id_name] != arr["id_old_"+id_name]){
$("input").each(function(){
if (this.name == 'atack'){
this.value = this.value*1 - arr["old_mod_atack_"+id_name]*1;
}
if (this.name == 'def'){
this.value = this.value*1 - arr["old_mod_def_"+id_name]*1;
}
if (this.name == 'sm'){
this.value = this.value*1 - arr["old_mod_sm_"+id_name]*1;
}
if (this.name == 'knol'){
this.value = this.value*1 - arr["old_mod_knol_"+id_name]*1;
}
if (this.name == 'luck'){
this.value = this.value*1 - arr["old_mod_luck_"+id_name]*1;
}
if (this.name == 'bd'){
this.value = this.value*1 - arr["old_mod_bd_"+id_name]*1;
}
if (this.name == 'ini'){
this.value = this.value*1 - arr["old_mod_ini_"+id_name]*1;
}
});
arr["ok_"+id_name] = 0;
}
if (arr["ok_"+id_name] == 0 && arr["id_"+id_name] != arr["id_old_"+id_name]){
$("input").each(function(){
if (this.name == 'atack'){
this.value = this.value*1 + mod_atack*1;
}
if (this.name == 'def'){
this.value = this.value*1 + mod_def*1;
}
if (this.name == 'sm'){
this.value = this.value*1 + mod_sm*1;
}
if (this.name == 'knol'){
this.value = this.value*1 + mod_knol*1;
}
if (this.name == 'luck'){
this.value = this.value*1 + mod_luck*1;
}
if (this.name == 'bd'){
this.value = this.value*1 + mod_bd*1;
}
if (this.name == 'ini'){
this.value = this.value*1 + mod_ini*1;
}
arr["old_mod_atack_"+id_name] = mod_atack;
arr["old_mod_def_"+id_name] = mod_def;
arr["old_mod_sm_"+id_name] = mod_sm;
arr["old_mod_luck_"+id_name] = mod_luck;
arr["old_mod_bd_"+id_name] = mod_bd;
arr["old_mod_ini_"+id_name] = mod_ini;
});
arr["ok_"+id_name] = 1;
arr["id_old_"+id_name] = arr["id_"+id_name];
}
});
});
});
});
</script>
|
А теперь таблица страницы index.html:
<html>
<head>
<meta HTTP-EQUIV="Expires" CONTENT="Mon, 22 Jul 2002 11:12:01">
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
</head>
<body>
<table>
<tr>
<td><input type="button" value="Рыцарь" name="hum"> </td>
<td><input type="button" value="Эльф" name="elf"> </td>
<td><input type="button" value="Темный Эльф" name="bl_elf"> </td>
<td><input type="button" value="Маг" name="mage"> </td>
<td><input type="button" value="Демон" name="demon"> </td>
<td><input type="button" value="Варвар" name="barb"> </td>
<td><input type="button" value="Некромант" name="nekr"> </td>
</tr>
</table>
<table>
<tr>
<td id="not">Атака: </td><td id="not"><input type="text" size="3" value="0" name="atack" disabled> + -</td>
</tr>
<tr>
<td id="not">Защита: </td><td id="not"><input type="text" size="3" value="0" name="def" disabled> + -</td>
</tr>
<tr>
<td id="not">Сила Маги: </td><td id="not"><input type="text" size="3" value="0" name="sm" disabled> + -</td>
</tr>
<tr>
<td id="not">Знания: </td><td id="not"><input type="text" size="3" value="0" name="knol" disabled> + -</td>
</tr>
<tr>
<td id="not">Удача: </td><td id="not"><input type="text" size="3" value="0" name="luck" disabled> + -</td>
</tr>
<tr>
<td id="not">Боевой Дух: </td><td id="not"><input type="text" size="3" value="0" name="bd" disabled> + -</td>
</tr>
<tr>
<td id="not">Инициатива: </td><td id="not"><input type="text" size="3" value="0" name="ini" disabled> + -</td>
</tr>
</table>
<table border="1" >
<tr>
<td id="ring1" width="50" height="50"> </td>
<td id="head" width="50" height="50"> </td>
<td id="neck" width="50" height="50"> </td>
</tr>
<tr>
<td id="ring2" width="50" height="50"> </td>
<td id="body" width="50" height="50"> </td>
<td id="back" width="50" height="50"> </td>
</tr>
<tr>
<td id="right_arm" width="50" height="50"> </td>
<td id="foot" width="50" height="50"> </td>
<td id="left_arm" width="50" height="50"> </td>
</tr>
</table>
<div id="load" style="width:100%;"> </div>
</body>
</html>
|
ОДНА из php-ных страниц, подгражаемых в index.html, называется ring1.php:
<?
include("/home/pereodevalka/www/blocks/db.php");
$result = mysql_query("SELECT * FROM cloth WHERE type='Кольцо'");
?>
<table cellpadding="0" cellspacing="0" border="1">
<?
while ($myrow = mysql_fetch_array($result)){
echo "<tr>
<td><a href='#' id='".$myrow["id"]."'
name='ring1'
lvl='".$myrow["lvl"]."'
mod_atack='".$myrow["mod_atack"]."'
mod_def='".$myrow["mod_def"]."'
mod_sm='".$myrow["mod_power_mage"]."'
mod_knol='".$myrow["mod_knol"]."'
mod_luck='".$myrow["mod_luck"]."'
mod_bd='".$myrow["mod_bd"]."'
mod_ini='".$myrow["mod_ini"]."'>".$myrow["name"]."</a><br><td> <tr>";
}
?>
</table>
|
Ещё раз повторюсь. После перезагруки в Опере работает до тех пор, пока я не нажму на ссылку. Как только нажимаю, скрипт перезапускается, т.е. он тупо игнорирует мой href="#". | |
|
|
|
|
|
|
|
для: DiMoN_TD
(02.04.2008 в 11:18)
| | Не думал что код такой большой.. Думаю дело всетаки в DOM
А как в других браузерах работает? | |
|
|
|
|
|
|
|
для: Antohins
(02.04.2008 в 11:26)
| | код не большой, просто там много нюансов.. а структура там простая =)
В ИЕ7,6 у меня работает безотказно, а в Мозиле ещё не пробовал. Но факт в том, что в ИЕ работает. | |
|
|
|
|
|
|
|
для: DiMoN_TD
(02.04.2008 в 11:28)
| | Проверьте теги которые напрямую используют элементы формы | |
|
|
|
|
|
|
|
для: Antohins
(02.04.2008 в 11:58)
| | А что с ними может быть не так?? При первом запуске ведь всё работает. Кстати, я не упомянул. Работу в Опере после перезагрузки компа можно возобновить, если поменять просто имя файла. НО, если имя файла вернуть таким, какое оно было - всё снова повторяется. | |
|
|
|
|
|
|
|
для: DiMoN_TD
(02.04.2008 в 12:16)
| | СТранно. Может
<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
?>
| поможет. | |
|
|
|
|
|
|
|
для: Antohins
(02.04.2008 в 13:02)
| | А где этот код впихнуть?
в подгружаемую страницу что ли? ) | |
|
|
|
|
|
|
|
для: DiMoN_TD
(02.04.2008 в 13:49)
| | В самое начало страницы index | |
|
|
|
|
|
|
|
для: Antohins
(02.04.2008 в 13:51)
| | нет, не хочет и так он работать =( | |
|
|
|
|
|
|
|
для: DiMoN_TD
(02.04.2008 в 14:18)
| | проблема решена.
решение проблемы: <a href="javascript:void(0);" | |
|
|
|