Как действовать на определенный элемент при размытии? - PullRequest
0 голосов
/ 11 сентября 2009

При фокусировке мы можем сделать что-то вроде:

$('#target').focus(function(){$(this)..}); 

Потому что «это» как раз то, что сфокусировано ($(this) == $('#target')).

Но не могу сделать то же самое для «размытия», потому что $(this) != $('#target').

Как правильно это сделать?

Примечание: в моем приложении я не могу назначить идентификатор цели, и «#target» здесь только для иллюстрации.

Ответы [ 4 ]

1 голос
/ 11 сентября 2009

Blur сохранит контекст так, как вы ожидаете:

$("#target").blur(function() {
    $(this).text("See? It works!");
});
0 голосов
/ 11 сентября 2009

Событие / размытие запускает событие размытия каждого сопоставленного элемента, а $ (this) возвращает только тот, который размыт.

jQuery("#target").blur(function() {
  console.log( jQuery(this) );
});

Используйте Firebug . Он также добавляет глобальную переменную с именем «console» ко всем веб-страницам, загруженным в Firefox. В этом случае «console.log» записывает сообщение в консоль.

0 голосов
/ 11 сентября 2009

Я могу получить доступ к 'this' с размытием, следующий код работает нормально ...

$(".aClass").blur(
  function(){
    alert($(this).attr("id"));
});
0 голосов
/ 11 сентября 2009
var foo = $('target');
foo.focus(function(){foo.....});

Анонимная функция будет действовать как замыкание и запоминает значение foo.

...