2011-10-30 50 views

回答

6

$(this).val()更換第二bgColor

您已將起始值指定爲bgColor,然後您不會爲其重新分配新值。

jsFiddle

+1

這是一個更有效的方法,我沒有想到的。太好了! – Purag

+0

+1比我的快速修復效率更高。 – jsonnull

+0

謝謝!很簡單 :) – tctc91

1

您只需在用戶輸入它之後定義bgColor變量。 Here's這是一個小提琴。

我所做的是複製bgcolor變量並將其放置在keyup函數中。這樣,它在之後再次定義變量

小提琴完美的作品。

1

你忘了重新設置將bgcolor變量,只要你改變輸入:

試試這個:

$(function() { 
    var bgColor = $('#colorpickerField1').val(); 
    $('body').css("backgroundColor",'#' + bgColor); 

    $('#colorpickerField1').change(function() { 
     var bgColor = $('#colorpickerField1').val(); 
     $('body').css("backgroundColor",'#' + bgColor); 
    }); 
}); 
1

您必須再次設置bgColor的值。我還添加了一點檢查,如果它的長度是3或6個字符。

$(function() { 
    var bgColor = $('#colorpickerField1').val(); 
    $('body').css("backgroundColor",'#' + bgColor); 

    $('#colorpickerField1').keyup(function() { 
     bgColor = $('#colorpickerField1').val(); 
     if(bgColor.length ==3 || bgcolor.length == 6) { 
      $('body').css("backgroundColor",'#' + bgColor); 
     } 
    }); 
}); 
1

您需要檢索字段.val().keyup()處理程序,爲價值總是會改變用戶每按下一個鍵的時間。

你的JavaScript更改爲:

$(function() { 
    var bgColor = $('#colorpickerField1').val(); 
    $('body').css("backgroundColor",'#' + bgColor); 

    $('#colorpickerField1').keyup(function() {  
     $('body').css("background-color",'#' + $(this).val()); 
    }); 
}); 

更新的jsfiddle:http://jsfiddle.net/Tnc8p/1/