Функция запуска jquery, когда элемент скрыт - PullRequest
2 голосов
/ 14 января 2011

Как лучше всего запустить функцию, когда определенный DIV скрыт.

Я хочу уничтожить некоторый объект Flash со страницы, когда элемент скрыт, и воссоздать их при отображении элемента.

, например

<div id="flashContainer> // flash object </div>

$("#flashContainer).hide(); //trigger function that destroys the flash object
$("#flashContainer).show(); //trigger function that creates the flash object

Справочная информация:

Причина, по которой я хочу это сделать, заключается в том, что у меня есть длинная страница с некоторой навигацией, которая "перебирает" div, как если бы они были страницами. В IE все эти скрытые элементы div загружают флэш-память и начинают загрузку видео, загружая память и пропускную способность в процессе

Ответы [ 3 ]

1 голос
/ 14 января 2011

jQuery обеспечивает переопределение для методов show () и hide (), которое позволяет передавать функцию обратного вызова, которая запускается после завершения анимации

.show(длительность, [обратный вызов])

Вы можете использовать это как

$('#flashContainer').hide('slow', function(e) {
  //put your code here to remove your flash
  $('#flashId').remove();  //something like this maybe
  alert('hidden');
});

$('#flashContainer').show('slow', function(e) {
  //add your flash here
});

Однако в случае show(), flashcontainer будет отображаться перед вашим флэш-объектомзагружен, поэтому вы можете создать флэш-память перед вызовом show() что-то вроде

$('#flashcontainer').append('<object><!-- your flash html here --></object>');
$('#flashcontainer').show();
1 голос
/ 14 января 2011
$("#flashContainer:hidden").show();

Взято с официальной страницы jQuery, это помогает?

Можете ли вы быть более конкретным?

0 голосов
/ 14 января 2011

Лучше будет показать и спрятать флеш-объект, чем создавать и уничтожать.

Что-то вроде

$("#flashContainer).hide("slow", function(){
    $("#yourflashobjid").hide();
});

$("#flashContainer).show("slow", function(){
    $("#yourflashobjid").show();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...