Ориентация на iFrame один раз с помощью jQuery - PullRequest
0 голосов
/ 19 марта 2010

У меня есть серия фреймов (4), которые используются на странице для создания загрузки динамического контента с помощью вызовов Ajax.

В каждом из этих фреймов я нацеливаюсь на элементы родительского уровня и обновляю их соответствующим содержанием, например,

$("#loadingGrid1",top.document).show();
$("#frameSkills",top.document).hide();

В jQuery есть способ вместо того, чтобы нацеливать определенные элементы на родительской странице несколько раз, просто нацелить страницу один раз в переменную, например,

var parentPage=$('#frameSkills',top.document);

А затем используйте эту переменную для применения содержимого, подобного $(parentPage > #loadingGrid1).hide()

Надеюсь, я объяснил, что мне нужно. По сути, мне приходится вызывать «top.document» в каждом селекторе jQuery, который я делаю, и это кажется пустой тратой энергии.

Ответы [ 3 ]

0 голосов
/ 19 марта 2010

Как насчет делегатов?

0 голосов
/ 20 марта 2010

Что-то вроде этого кажется мне наиболее чистым:

var page = $(top.document); //Define once
page.find("#loadingGrid1").show();
page.find("#frameSkills").hide();

Когда вы звоните $(selector, context), вы (во всяком случае, в любом случае, как это все равно) вызываете context.find(selector) внутри в любом случае ... это также может облегчить чтение / запись / цепочку на ходу.

0 голосов
/ 19 марта 2010

Объект Jquery может использоваться как контекст, как узел DOM.

var parentPage = $('#frameSkills',top.document);
$("#myselector", parentPage).dostuff();

Или вы можете использовать функцию find:

parentPage.find("#myselector").dostuff();
...