Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2013, 17:04
Аспирант
Отправить личное сообщение для Simones Посмотреть профиль Найти все сообщения от Simones
 
Регистрация: 13.02.2013
Сообщений: 32

Скрипт в странице загруженной ч-з ajax
Здравствуйте, товарищи ! Борюсь с проблемой уже 2-ые сутки - бестолку . PS:добился только того, что скрипт стал работать в хроме(unix&win).
Суть: 1.страницы загружаются аяксом вот так:
$.ajax({
url: "/Линк.html" ,
cache: false,
success: function(html){
$("#one").show();
}
});
2. В Линк.html выполняется такое:
<div id = "1" onclick="Show('two'); $(input1).val(1); ">
<font id="message">
<strong>Текст</strong>
</font>
<br />
<font id="date">
Дата
</font>
<br />
<br />
</div>

<div id = "2" onclick="Show('two'); $(input1).val(2); ">
<font id="message">
<strong>Текст</strong>
</font>
<br />
<font id="date">
Дата
</font>
<br />
<br />
</div>
//Ф-я Show:
function Show(id,type){
var status = $(id).css('display');

if(status == 'none'){
if(!type)
$(id).slideDown('normal');
else
$(id).show();
}
//

3. Тот самый элемент "two":
<div id='two' style="display:none">
<textarea id="text1"></textarea>
<br/><br/>
<input id="input1" maxlength="40"/>
<br /><br />
</div>

4. Сама проблема в том, что при перезагрузке страницы (без аякса)
в поле #input1 добавляет значение "1" или "2" (c $(input1).val(1); и $(input1).val(2); соотв.). А при загрузке ч-з аякс выполняется только 1 раз: т.е. при нажатии выполняется а при перезагрузке страницы ч-з аякс - уже не выполняется...
Консоль ошибок пуст, так что не знаю даже на что грешить.
Прошу Вашей помощи и советов
Спасибо за внимание...
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2013, 17:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Simones,
Аякс не подгружает скрипты
Выносите функцию на исходную страницу

function Show(id,type){
 var status = $(id).css('display');

 if(status == 'none'){
 if(!type)
 $(id).slideDown('normal');
 else
 $(id).show();
 }
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2013, 17:21
Аспирант
Отправить личное сообщение для Simones Посмотреть профиль Найти все сообщения от Simones
 
Регистрация: 13.02.2013
Сообщений: 32

Сообщение от Deff Посмотреть сообщение
Simones,
Аякс не подгружает скрипты
Выносите функцию на исходную страницу

function Show(id,type){
 var status = $(id).css('display');

 if(status == 'none'){
 if(!type)
 $(id).slideDown('normal');
 else
 $(id).show();
 }
спасибо, уже пытался - не работает.
UP: использую Jquery...
UP2: даже в IE8.0 работает - я в шоке ))

Последний раз редактировалось Simones, 13.02.2013 в 17:29.
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2013, 17:32
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Simones,
Ccылка на тестовую инет-страницу есть ?
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2013, 12:06
Аспирант
Отправить личное сообщение для Simones Посмотреть профиль Найти все сообщения от Simones
 
Регистрация: 13.02.2013
Сообщений: 32

Вместил все в 2 странички:
1) Главная
<!DOCTYPE html>
<head> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

<script type="text/javascript" src="/styles/js/jquery.js"></script>    
<script>
function op(id,type){
    var status = $(id).css('display');
    
    if(status == 'none'){
        if(!type)
           $(id).slideDown('normal');
        else
           $(id).show();
    }

}


        function show()  
        {  
            $.ajax({  
                url: "lin.html",  
                cache: true,  
                success: function(html){  
                    $("#main").hide().show().html(html);  
                }  
            });  
        }  
</script>   
</head>
<body>
<button type="submit" onclick="show()">Link</button>
<div id="main"></div>   
</body>
</html>

2) Подгружаемая ч-з аякс
<!DOCTYPE html>
<head> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 

<script type="text/javascript" src="/styles/js/jquery.js"></script>    

<script>
function op(id,type){
    var status = $(id).css('display');
    
    if(status == 'none'){
        if(!type)
           $(id).slideDown('normal');
        else
           $(id).show();
    }

}
</script>
</head>
<body>
<div id = "1" onmouseover="op(two); $(input1).val(1); ">
<font id="message">
<strong>Текст</strong>
</font>
<br />
<font id="date">
Дата
</font>
<br />
<br />
</div>

<div id = "2" onmouseover="op(two); $(input1).val(2); ">
<font id="message">
<strong>Текст</strong>
</font>
<br />
<font id="date">
Дата
</font>
<br />
<br />
</div>


<div id='two' style="display:none">
<textarea id="text1" />asdasdsdf</textarea>
<br/><br/>
<input id="input1" value="0" maxlength="40"/>
</div>
</body>
</html>

Путем иследований выяснил: на линь версии FF работает только 1 раз (при первом обновлении ч-з аякс), а на вин версии - не работает вообще. В остальных браузерах работает так, как нужно.
Неужели придется блокировать всех FF-юзеров и направлять на страницу с просьбой замены браузера ?

Последний раз редактировалось Simones, 14.02.2013 в 12:10.
Ответить с цитированием
  #6 (permalink)  
Старый 14.02.2013, 19:06
Аспирант
Отправить личное сообщение для Simones Посмотреть профиль Найти все сообщения от Simones
 
Регистрация: 13.02.2013
Сообщений: 32

Мелкия ф-и, вроде alert("") - работают а вот что-то по сложнее:
$(id).append('Some text') - нет... Никто не подскажет как быть ?
Ответить с цитированием
  #7 (permalink)  
Старый 14.02.2013, 19:10
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Simones
2) Подгружаемая ч-з аякс
Вот эту функцию
<script>
function op(id,type){
    var status = $(id).css('display');
    
    if(status == 'none'){
        if(!type)
           $(id).slideDown('normal');
        else
           $(id).show();
    }

}
</script>

Вынесите на главную - она не загрузится аяксом,
Ответить с цитированием
  #8 (permalink)  
Старый 14.02.2013, 19:55
Аспирант
Отправить личное сообщение для Simones Посмотреть профиль Найти все сообщения от Simones
 
Регистрация: 13.02.2013
Сообщений: 32

дело в том, что уже разные комбинации перепробовол - результат все тот же.
Тут, как я думаю, дело в какой-то особенности FF, в какой - неизвестно.
Ответить с цитированием
  #9 (permalink)  
Старый 14.02.2013, 20:17
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Simones,
Посколь вопросы разные и от всех, лучше или совместно делать по шагам или единолично самому
Ответить с цитированием
  #10 (permalink)  
Старый 14.02.2013, 20:22
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Вот эту функцию лучше заменить ,
function show()  
        {  
            $.ajax({  
                url: "lin.html",  
                cache: true,  
                success: function(html){  
                    $("#main").hide().show().html(html);  
                }  
            });  
        }

На ;load, предварительно обернув контент подгрузки в div с собственным id, в противном случае Вы подгружаете новые теги html и body, что не айс
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректно срабатывает скрипт на странице с pop-up Heidel jQuery 2 13.11.2012 17:44
Скрипт ajax чата seoabcd Общие вопросы Javascript 2 20.02.2011 18:39
Не выполняется скрипт на подгружаемой странице AlThar ExtJS 1 21.01.2011 15:10
Найти скрипт на странице kaww Events/DOM/Window 18 29.06.2010 11:45
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12