JavaScript: элементіне қарамастан оқиғаларды басып шығару

  1. Осы оқиға бар беттегі барлық DOM элементтері үшін «фокусқа» оқиғалар тыңдаушысын қосуға болатын бар механизм бар ма? Егер болмаса, мұны қалай істей аламын?

  2. Кез-келген DOM элементі оқиға тудыратын кез келген уақытта console.log (бірдеңе) керек. Мұны қалай істей аламын?

EDIT: кез-келген негіздемесіз:)

0

4 жауаптар

Оқиғаны body немесе html элементіне байланыстыруға болады. Немесе барлық html-ті қамтитын кез келген басқа элемент.

Немесе jQuery қолданғыңыз келсе, сіз бір нәрсе жасай аласыз

$("*").bind("focus", function(e){
    console.log("something");
})
1
қосылды
Фокус оқиғасын беттің «әрбір» элементіне байланыстыру.
қосылды автор Juri, көзі
Сіз $ (құжат) жасай аласыз ба, бірақ ОС өз қажеттілігін анықтаған жоқ. Мен білемін, $ («*») әлдеқайда баяу, бірақ ол элементтің нақты негізіне кіруді қажет ететін сияқты айтылды.
қосылды автор Keith.Abramo, көзі

Мұндай нәрсе жұмыс істеуі керек (jQuery арқылы).

$("input").focus(function(){
   console.log($(this).attr("id"));
});

Here's a live example: http://jsbin.com/ipiciz/edit#javascript,html,live

0
қосылды

JQuery-дегі : енгізу псевдоключителясын қолданып көріңіз.

$(':input').focus(function(e){
    console.log(e);
});

Бұл кіріс элементтеріне ғана қосылады, ол бәрібір іздейді.

0
қосылды

Оқиғалар DOM арқылы «көпіршігі» болып табылады, сондықтан сіз тыңдаушыны құжатты, денені, html немесе кез келген басқа басты элементті (мысалы, div) байланыстыра аласыз және оның құрамындағы элементтерден туындаған әрбір оқиғаны тыңдай аласыз.

Мысалы, JQuery-ні пайдалану арқылы Сіз мұны келесідей орындауға болады:

$(document).bind('focus', function(e) { console.log(e); });

Бұл кез-келген элемент оқиғаны бастапқыда тудырмаса да, кез-келген фокус-оқиғаға жазылады.

0
қосылды
... көпіршік жойылмаса.
қосылды автор Richard JP Le Guen, көзі
Бұл бекітуге байланысты проблема кейбір оқиғалар (олардың бірі болып табылатын onfocus ) көпіршігі болмайды (IE). Сіз қорытуға болмайды. Әрбір оқиға ерекше.
қосылды автор user1385191, көзі