IE вводит другое поведение выбранного текста или нет - PullRequest
2 голосов
/ 08 января 2012

Я обнаружил странное поведение ввода текста в IE.Я хочу изменить курсор при отправке формы, что можно сделать, нажав клавишу ввода.

/* IE hack for on enter submit */
$('input').live('keydown', function(e){
    if (e.keyCode == 13) {
        $(this).parents('form').find(".submit").trigger("click");
        return false;
    }
});

Поскольку IE меняет курсор после перемещения, я должен взломать его, назначив всем элементам на странице специальный класс с курсором: progress;заставить его работать немедленно.

$("form.ajax").live("submit", function () {
    $("#load_dialog").show(); /show loading dialog
    if($.browser.msie){ /IE hack
        $("*").addClass("waiting"); /assign class with loading cursor
    }
    $(this).ajaxSubmit(); /submit a form
    return false;
});

Это прекрасно работает, но с одной странной проблемой.Когда я нажимаю «Ввод» (выберите текст) и нажимаю «Ввод» без изменения текста, курсор загрузки появляется (несколько раз), но когда я редактирую текст, а затем нажимаю «Ввод», курсор не изменяется.

У вас нет идей?почему?

1 Ответ

1 голос
/ 08 января 2012

Я бы изменил это:

$('input').live('keydown', function(e){
    if (e.keyCode == 13) {
        $(this).parents('form').find(".submit").trigger("click");
        return false;
    }
});

к этому:

$('input').live('keydown', function(e){
    var key = e.keyCode || e.which;
    if (key === 13) {
        $(this).parents('form').submit();
        return false;
    }
});

Или, если вы используете jQuery 1.7, тогда on предпочтительнее, чем live, поскольку последний устарел и неэффективен

$(document).on('keydown', 'input', function(e){
    var key = e.keyCode || e.which;
    if (key === 13) {
        $(this).parents('form').submit();
        return false;
    }
});

А для pre-1.7 delegate это следующая лучшая вещь:

$(document).delegate('input', 'keydown', function(e){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...