0

クリックして押したままにすると、値はiまたは。downまで継続的に減少します。代わりに、私はクリックし続ける必要があります。これがjsfiddleです http://jsfiddle.net/mdanz/5mdwe/8/mouseupmouseleave

$('#bid-down').live('mousedown',function() {

var button = $(this);
var number = $(this).parent('div').siblings('#bid-child-container-2').find('#bid-price').val();
var newnumber = number.split('.');


button.data('interval2', setInterval(function (){

var on = button.attr('data-on');

if(newnumber[0]==2 && newnumber[1]==5) {
    alert('Minimum Bid($2.50)');
    }

if(on==1) {
    if(newnumber[0]>2) {
        if(newnumber[1]==0) {
        var first = parseInt(newnumber[0])-1;    
        var second = 9;    
        }
    }

    if(newnumber[1]==0) {
    var first = parseInt(newnumber[0])-1;    
    var second = 9;
    }

    if(newnumber[1]>0) {
    var first = newnumber[0];    
    var second = parseInt(newnumber[1])-1;    
    }

    if(first==2 && second==5) {
    button.attr('data-on','0');
    }

    var finalnumber = first+'.'+second;
    button.parent('div').siblings('#bid-child-container-2').find('#bid-price').val(finalnumber);

}

}, 100));


}).bind('mouseup mouseleave', function() {

clearInterval($(this).data('interval2'));
});
4

2 に答える 2

1

あなたのインターバルは完璧に機能しています。ただし、機能の内部では処理numberしませんnewnumbersetInterval

のようなものを追加console.log('down');してからブラウザのエラーコンソールを見ると、setIntervalが繰り返し実行されていることがわかります。

既存のコードでは、数行を変更する必要があります。http://jsfiddle.net/5mdwe/23/を参照してください。

于 2012-06-01T07:01:27.620 に答える
1

区間関数内の数値を抽出するには、コード行を配置する必要があります

-また-

間隔関数の最後にnumber/newnumberの値を設定します。

デモを参照してください。

于 2012-06-01T07:01:56.657 に答える