jQuery: как изменить фоновое изображение, введя текстовое поле?

#jquery #image #input #background #transition

#jquery #изображение #ввод #фон #переход

Вопрос:

Что я хочу сделать, так это создать веб-страницу, которая меняет свое фоновое изображение в ответ на введенную пользователем строку. Если строка соответствует единице, она изменит исходное изображение на соответствующее изображение. Однако это работает только для определенных строк. Другими словами, вы не получите изображение цветка только потому, что вы ввели flower . Если строка не совпадает с кодом, ничего не происходит.

Я уверен, что есть какой-то способ сделать это с switch помощью оператора, хотя я не уверен, как.

Комментарии:

1. Следуя ответам Бена и sany2k8, я придумал это в качестве тестовой скрипки: jsfiddle.net/mnbishop017/xHbK5

Ответ №1:

Если я вас правильно понял, это должно сработать:

 $(function() {
  var $backgroundElm = $("#bkelm");
  $("#inputelm").on("keyup", function () {
    console.log("working..."   $(this).val());
    if ($(this).val() === 'flower') {
        $backgroundElm.css("background-image", "url(http://t2.gstatic.com/images?q=tbn:ANd9GcQiCAV98SUrpkGrWgUXvJ8dZYzZQmxyBVMr2v9cDJoyy2grjrDw)");
    } else if ($(this).val() === "yellow") {
        $backgroundElm.css("background-color", "yellow");
    }
  });
});
  

и вот живой пример

Комментарии:

1. Я надеялся, что изменение произойдет, когда я нажму Enter / Return, а не сразу.

2. Измените ‘keyup’ на ‘change’

3. если вы хотите, чтобы кнопка делала это, просто добавьте кнопку и привяжите ее к событию щелчка. Дайте мне знать, если вам нужна помощь в этом. Это очень просто.

Ответ №2:

Попробуйте этот способ, приятель

 $('#target').keyup(function(event){

    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){

        //do you backgroud change functionality here
        if ($(this).val() === 'a'){
          //do something
        } 
        else if ($(this).val() === "b") {
        //do something else
        }
    }
});