2010-08-07 4 views
0

Это мой JavaScript: -JQuery вкладки Аякса проблема

<script type ="text/javascript"> 
    $(function() 
    { 
$("#tabs").tabs({ cache: true ,fx: { opacity: 'toggle' }}); 


    }); 

</script> 

И это мой HTML, который загружает файл PHP с использованием Ajax: -

<ul> 
      <li><a href="#tab1">General</a></li> 
      <li><a href="<?php echo base_url() . 'Admin/Messages.php' ?>">Messages</a></li> 
      <li><a href="<?php echo base_url() . 'Admin/Pics.php' ?>">Pics</a></li> 
      <li><a href="<?php echo base_url() . 'Admin/Facilities.php' ?>">Facilities</a></li> 

     </ul> 

вопрос я хочу знать, когда Messages.php загружается срабатывает ли javascript onload event? Я хочу знать, потому что хочу взять textarea и преобразовать его в редактор. Однако я не смог захватить window.onload событие: -

window.onload = function(){ 
     alert('hello'); 
    } 

и дальше, если я что-то написать в: -

$(function(){ 
} 

Он работает в Opera и IE, но иногда не работает иногда. Чтобы суммировать, как я могу захватить window.onload в вышеуказанной ситуации?

EDIT

Похоже $(function(){ }, кажется, работает, проблема с fx: { opacity: 'toggle' }. Когда я удаляю эффект, он работает нормально.

Заранее спасибо :)

+0

Какие версии пользовательского интерфейса jQuery/jQuery вы используете? В предыдущих несовместимых версиях между ними визуальные эффекты уничтожали бы виджеты. –

ответ

1

window.onload события не огня, в документе вы загружаете в него уже уволены ранее.

Вы должны иметь возможность использовать document.ready, например. $(function() { }); на странице, которую вы выбираете, и она работает, если вы хотя бы на jQuery 1.4.2+. В выпуске 1.4.2 было исправлено несколько проблем, в том числе один из них был непоследовательным, если вы используете 1.4.1 или ниже, я не могу обещать, что он будет на 100% последовательным.

В качестве альтернативы, вы можете иметь код на главной странице вместо внутри messages.php и запустить код в load event вкладках, как это:

$("#tabs").bind("tabsload", function(event, ui) { 
    $('.myEditorClass', ui.panel).myEditorPlugin(); 
}); 
1

Я заметил, в некоторых браузерах, если вы используете display: none он ничего не будет отображать внутри этого тега, он просто игнорирует все, что там, потому что оно не отображается. Я не уверен, что эта настройка fx использует .hide(), но это может быть частью проблемы.

Также почему бы не настроить функцию на загружаемых страницах под названием «init», а затем ajax выполнить обратный вызов для ее запуска?

Смежные вопросы