скажем я это сделать:MooTools отключить или перехватить добавленное событие
$('field').addEvents ({
'focus' : function() { // do some stuff }
'blur' : function() { // do other stuff }
});
это поведение по умолчанию для всех моих полей ввода текста. то, что я теперь хочу сделать что-то вроде этого
<button id='shinyButton' name='shinyButton'>Poke Me</button>
затем:
$('shinyButton').addEvent('click', function() {
stopDefaultBlurFunctionInCurrentlyFocussedField();
// do seriously cool stuff
if (finishedDoingSeriouslyCoolStuff) {
$('field').focus(); // return focus to input field
}
}
так:
1) как я stopDefaultBlurFunctionInCurrentlyFocussedField() ;?
2) как я могу сказать, действительно ли я законченДозингСерьезныйКласс?
нажав на кнопку, пока сосредоточены на поле сложно, он будет срабатывать от размытия, а также щелчком вы можете использовать небольшую задержку на размытый обратного вызова, которые можно очистить. на клике - НЕ идеальный, так как клик может быть длинным кликом, поскольку мышь держится дольше, чем ожидалось, - или вы можете пойти с делегацией для всех этих элементов в родительскую форму, где вы можете проверить eventTargets и т. д. ... это не легкая задача. y также добавляет событие mouseover на кнопку, которая устанавливает флаг в полях, которые размытие проверяет и выходит изящно ... –
gotcha. поэтому для моих целей и целей: НЕТ. : D еще раз спасибо @Dimitar. как сидней, я вижу, что вы тоже самоучкой. дает мне надежду! лол. – WhiteRau
nah- он может работать. проверьте http://jsfiddle.net/dimitar/edsqg/1/ - как я уже сказал, отключает событие размытия в нужном поле, если вы наведете указатель мыши, чтобы щелчок на нем не вызвал проверку поля. любое другое размытие будет. –