Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: jQuery. Частичная работа в Опере.
 
 автор: DiMoN_TD   (02.04.2008 в 10:29)   письмо автору
 
 

Есть скрипт. Если потребуется могу дать, но пока опишу общую проблему:

Дана - таблица разбитая на ячейки (слоты), есть 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">

но остаётся всё таже фигня :(

   
 
 автор: Antohins   (02.04.2008 в 11:02)   письмо автору
 
   для: DiMoN_TD   (02.04.2008 в 10:29)
 

код в студию =)

   
 
 автор: Antohins   (02.04.2008 в 11:03)   письмо автору
 
   для: Antohins   (02.04.2008 в 11:02)
 

и по умолчанию кеширование отключено в jquery

   
 
 автор: DiMoN_TD   (02.04.2008 в 11:18)   письмо автору
 
   для: 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("&nbsp;");
            
            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">&nbsp;</td>
        <td id="head" width="50" height="50">&nbsp;</td>
        <td id="neck" width="50" height="50">&nbsp;</td>
        
    </tr>
    <tr>
        <td id="ring2" width="50" height="50">&nbsp;</td>
        <td id="body" width="50" height="50">&nbsp;</td>
        <td id="back" width="50" height="50">&nbsp;</td>
    </tr>
    <tr>
        <td id="right_arm" width="50" height="50">&nbsp;</td>
        <td id="foot" width="50" height="50">&nbsp;</td>
        <td id="left_arm" width="50" height="50">&nbsp;</td>
    </tr>
</table>

<div id="load" style="width:100%;">&nbsp;</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="#".

   
 
 автор: Antohins   (02.04.2008 в 11:26)   письмо автору
 
   для: DiMoN_TD   (02.04.2008 в 11:18)
 

Не думал что код такой большой.. Думаю дело всетаки в DOM

А как в других браузерах работает?

   
 
 автор: DiMoN_TD   (02.04.2008 в 11:28)   письмо автору
 
   для: Antohins   (02.04.2008 в 11:26)
 

код не большой, просто там много нюансов.. а структура там простая =)

В ИЕ7,6 у меня работает безотказно, а в Мозиле ещё не пробовал. Но факт в том, что в ИЕ работает.

   
 
 автор: Antohins   (02.04.2008 в 11:58)   письмо автору
 
   для: DiMoN_TD   (02.04.2008 в 11:28)
 

Проверьте теги которые напрямую используют элементы формы

   
 
 автор: DiMoN_TD   (02.04.2008 в 12:16)   письмо автору
 
   для: Antohins   (02.04.2008 в 11:58)
 

А что с ними может быть не так?? При первом запуске ведь всё работает. Кстати, я не упомянул. Работу в Опере после перезагрузки компа можно возобновить, если поменять просто имя файла. НО, если имя файла вернуть таким, какое оно было - всё снова повторяется.

   
 
 автор: Antohins   (02.04.2008 в 13:02)   письмо автору
 
   для: 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'); 
?>
поможет.

   
 
 автор: DiMoN_TD   (02.04.2008 в 13:49)   письмо автору
 
   для: Antohins   (02.04.2008 в 13:02)
 

А где этот код впихнуть?
в подгружаемую страницу что ли? )

   
 
 автор: Antohins   (02.04.2008 в 13:51)   письмо автору
 
   для: DiMoN_TD   (02.04.2008 в 13:49)
 

В самое начало страницы index

   
 
 автор: DiMoN_TD   (02.04.2008 в 14:18)   письмо автору
 
   для: Antohins   (02.04.2008 в 13:51)
 

нет, не хочет и так он работать =(

   
 
 автор: DiMoN_TD   (03.04.2008 в 21:24)   письмо автору
 
   для: DiMoN_TD   (02.04.2008 в 14:18)
 

проблема решена.
решение проблемы: <a href="javascript:void(0);"

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования