2015-07-05 5 views
1

Я не буду запускать эту функцию, когда пользователь нажимает кнопку backspace (8) или вводит (13).Нажмите клавишу и запускает функцию jquery

$(document).keypress(function(e) { 
    if(e.which == 8) { //-- or 13 
     var x = document.getElementsByTagName("BODY")[0]; 
     x.style.backgroundImage = "-moz-linear-gradient(--90deg, #004158 0%, #005472 100%)"; 
     x.style.backgroundImage = "-webkit-linear-gradient(--90deg, #004158 0%, #005472 100%)"; 
     x.style.backgroundImage = "-o-linear-gradient(--90deg, #004158 0%, #005472 100%)"; 
     x.style.backgroundImage = "linear-gradient(-180deg, #004158 0%, #005472 100%)"; 
    } 
}); 

Но этот код не работает.

Спасибо.

+2

не или хочет ?? ?? 'e.which == 8' хочет, и' e.which! = 8' не будет. –

+0

Какой смысл устанавливать свойство '.backgroundImage', а затем перезаписывать его три раза другими значениями? Я предполагаю, что вы намерены применить все эти настройки градиента сразу? Вероятно, проще создать класс в таблице стилей и использовать jQuery для добавления этого класса, когда это необходимо. – nnnnnn

+0

Я предполагаю, что она хочет подражать шаблону CSS, где вы используете градиент для конкретного поставщика перед оригиналом для браузеров, которые не поддерживают линейный градиент. – jhinzmann

ответ

0

Изменение --90deg в -90deg, --90deg не является допустимым значением. и вы можете использовать JQuery, чтобы установить фон

Выполнить фрагмент и нажать кнопку ввода на теле, jquery v1.2.3 является старейшим доступен на фрагмент я использовал его:

$("body").keypress(function(e) { 
 
    if (e.which == 8 || e.which == 13) { 
 

 
    $("body").css('background', '-moz-linear-gradient(-90deg, #004158 0%, #005472 100%)'); 
 
    $("body").css('background', '-webkit-linear-gradient(-90deg, #004158 0%, #005472 100%)'); 
 
    $("body").css('background', '-o-linear-gradient(-90deg, #004158 0%, #005472 100%)'); 
 
    $("body").css('background', 'linear-gradient(-90deg, #004158 0%, #005472 100%)'); 
 
    } 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

1

какая версия JQuery вы используете?

$(document).on('keypress', function(e) { 
if(e.which == 8 || e.which == 13) { //-- or 13 
    var x = document.getElementsByTagName("BODY")[0]; 
    x.style.backgroundImage = "-moz-linear-gradient(--90deg, #004158 0%, #005472 100%)"; 
    x.style.backgroundImage = "-webkit-linear-gradient(--90deg, #004158 0%, #005472 100%)"; 
    x.style.backgroundImage = "-o-linear-gradient(--90deg, #004158 0%, #005472 100%)"; 
    x.style.backgroundImage = "linear-gradient(-180deg, #004158 0%, #005472 100%)"; 
    e.preventDefault(); 
} 
}); 

http://jsfiddle.net/pmq0215r/

+0

Зачем нужно изменение '.on ('keypress')' help? '.keypress()' эквивалентен. Вы можете объяснить свой ответ? – nnnnnn

+0

Я использую версию 1.11.3 –

+0

уверен, трюк не .on или .keypress ... e.preventDefault() есть :) Я просто использовал метод .on() для использования –

Смежные вопросы