У меня есть поле ввода текста, в котором используется автозаполнение ajax. Результаты отображаются на панели jScrollPane с вертикальной полосой прокрутки.
У меня возникает проблема, связанная с IE, когда событие размытия поля ввода запускается, когда пользователь нажимает на полосу прокрутки раскрывающегося списка jscrollPane (стрелки вверх и вниз на полосе прокрутки генерируются как теги привязки, показанные ниже ).
Насколько я понимаю, возвращаемое значение false должно остановить распространение события, поэтому я ожидаю, что события mousedown и click возвращают false для тегов привязки. Это отлично работает в FF и Chrome, но не в IE.
Хотя это и не показано ниже, я также попытался использовать следующий код в моем мероприятии, но безрезультатно:
e.preventDefault ? e.preventDefault() : e.stop();
e.returnValue = false;
e.stopPropagation();
Наверное, мой первый вопрос:
Стоит ли ожидать, что остановка распространения событий одного типа фактически остановит распространение событий других типов?
т.е. если срабатывает событие mousedown, которое возвращает false, это предотвратит срабатывание событий размытия или фокусировки?
Как я могу обойти эту проблему, чтобы гарантировать, что IE работает так же, как FF и Chrome?
Заранее спасибо за помощь
var rf = function() { return false; };
$('<a></a>')
.attr({'href':'javascript:;', 'className':'jScrollArrowUp'})
.css({'width':settings.scrollbarWidth+'px'})
.html('Scroll up')
.bind('mousedown', function()
{
currentArrowButton = $(this);
currentArrowDirection = -1;
onArrowMouseDown();
return false;
})
.bind('click', rf)
$("#InputBox").blur(function(e) {
hasFocus = 0;
if (!config.mouseDownOnSelect) {
hideResultsNow();
}