Как мне узнать, какой элемент имеет фокус? - PullRequest
0 голосов
/ 08 апреля 2011

Как узнать, какой элемент имеет фокус, или как определить, находится ли фокус конкретного элемента?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

еще не реализовано, я боюсь.Вы могли бы сделать что-то вроде этого

Shoes.app do
  @focused = para ""
  stack do
    @label1 = edit_line :text => 1
    click do
      @focused.replace @label1.text
    end
  end
  stack do
    @label2 = edit_line :text => 2
    click do
      @focused.replace @label2.text
    end
  end
end

Но проблема в окнах заключается в том, что элементы управления крадут все события из обуви.В Green Shoes это будет работать.Если вы находитесь в окнах, вы все равно можете увидеть результат, если щелкнуть справа от edit_line.Конечно, это только когда вы щелкаете мышью, вы должны проверять нажатие клавиш для получения событий клавиатуры.Grtz

0 голосов
/ 08 апреля 2011

Я в любом случае не знаю, запрашивать ли такую ​​информацию напрямую. Я полагаю, вы могли бы пройти DOM и проверить его вручную. Если это так, вы должны посмотреть на это .

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

$('<selector>').focus(function() {
  // Do something here
});

Только для хихиканья, вот один способ, которым вы могли бы использовать метод фокусировки, чтобы отследить, какой элемент получил его последним. Я настоятельно рекомендую не использовать этот код.

var gotDaFocus;
$('*').focus(function() {
  gotDaFocus = this;
}); 
...