2012-02-28 41 views
1

我終於按照自己想要的方式工作了。這是一種進度條,根據用戶對錶單的輸入而增加。唯一的問題是,我希望文件清楚,當輸入字段爲空時,我假設paper.clear();。但是它現在在紙上留下了一個狀態欄(一個瓶子)。這裏是js小提琴鏈接http://jsfiddle.net/anderskitson/LmYm8/當輸入空白時,試圖清除拉法爾紙張

更新:我複製了錯誤的代碼,現在我改變了它。雪地

和代碼來做到這一點

var paper = Raphael(document.getElementById("notepad"), 500, 500); 

function drawBottles(count) { 
    for (i = 0; i < count; i++) { 

     var randomNumber3 = Math.floor(Math.random()*25); 
     var path_a = paper.path("M242.07,270.119c0,0-14.596-30.606-7.625-35.793 c3.864-2.876,2.145-18.561,1.832-18.784c-0.313-0.224-1.839-0.319-1.839-0.319c-1.555-0.192-0.201-3.456-0.201-3.456 s0,0-0.598-0.352c-0.598-0.351,1.129-1.345,1.129-1.345c3.738-2.785,10.449-2.983,11.126-2.344c0.677,0.64-0.354,1.44-0.354,1.44 s0.73,0.832,1.333,2.111c0.604,1.28-0.792,1.665-0.792,1.665c1.852,6.718,9.877,14.935,9.877,14.935 c4.795,0.589,7.7,10.683,7.7,10.683l6.271,22.746C269.929,261.307,263.641,270.119,242.07,270.119z"); 
     path_a.attr({fill: 'none',stroke: '#231F20',"stroke-width": '3',"stroke-miterlimit": '10','stroke-opacity': '1'}).data('id', 'path_a'); 
     path_a.translate(i*30, 10); 
     path_a.rotate(randomNumber3); 

    }//end of for statement 
} 

$("input").keyup(function() { 
    var value = parseInt($(this).val()); 
    paper.clear(); 
    if (value > 60) { 
     drawBottles(3); 
    }else if(value > 30){ 
     drawBottles(2);   
    } else if(value != 0 && 0 != value.length) { 
     drawBottles(1); 
    }//end of else statement 
}); 

回答

2

一種方法是你parseInt函數之前檢查的$長度(本).VAL()()。如果它的長度爲零,清除紙張和存在KEYUP功能:

$("input").keyup(function() { 
    var val = $(this).val(); 
    if (val.length == 0){ 
     paper.clear(); 
    return;   
    } 
    ... 

您可以在這裏的行動看出來: http://jsfiddle.net/LmYm8/4/