документ и фрейм в одном селекторе - PullRequest
1 голос
/ 25 августа 2010

В настоящее время я ввожу iframe и связываю keyevent с document и iframe.

Можно ли выбрать как iFrame, так и документ в одной строке?
обратите внимание, что iframe должен иметь .contents() после селектора

// wait for iframe to load
$('iframe#iframe').load(function() {

    // event bind to document
    $(document).bind('keydown', function(e) {
        console.log("runs document");
    });

    // event bind to iframe
    $(this).contents().bind('keydown', function(e) {
        console.log("runs iframe");
    });     

});

Ответы [ 2 ]

3 голосов
/ 25 августа 2010

Вы можете использовать .add(), например:

$(this).contents().add(document).keydown(function(e) {
    console.log("runs in both");
});   

Это берет содержимое iframe, затем просто добавляет document к возвращенному объекту jQuery, что приводит коба имеют обработчик к своему событию keydown.

1 голос
/ 25 августа 2010

Как насчет этого:

// wait for iframe to load
$('iframe#iframe').load(function() {

    // event bind to iframe
    $(this).contents().add(document).bind('keydown', function(e) {
        console.log("runs iframe and document");
    });     

});

См. http://api.jquery.com/add/

...