2016-01-23 76 views
0

我有2個按鈕,我不知道如何禁用&啓用它們。基本上我有一個計時器,用於動畫。每當我按停止動畫我想停止計時器(這工作),我想停止動畫按鈕來禁用,並啓動動畫按鈕。我嘗試了每個語法的html & jquery我看到了,但它似乎仍然沒有工作......任何人都可以幫我在這裏? 我試過使用jQuery選擇器,html選擇器,.prop('disabled',false),.isDisabled,.disable等等。我的想法..禁用我的onclick按鈕

我的HTML按鈕代碼:

<input type="button" id="start" value="Start Animation"/> 
<input type="button" id="stop" value="Stop Animation"/> 

我的js代碼:

var startinterval = setInterval(SliderPosition, 2000); 
$("#start").attr('disabled','disabled'); 
$("#start").click(function(){startAnimation(1);}); 
$("#stop").click(function(){startAnimation(0);}); 
function startAnimation(bool) { 
    if(bool == 0) 
    { 
     $("#stop").attr('disabled', 'disabled'); 
     $("#start").attr('disabled', false); 
     clearInterval(startinterval); 
    } 
    else{ 
     $("#stop").attr('disabled', false); 
     $("#start").attr('disabled','disabled'); 
     startinterval = setInterval(SliderPosition, 2000); 
    } 
} 

回答

4

您需要使用prop()這一點。如果你正在使用.attr(),您需要使用.removeAttr()補充:

var startinterval = setInterval(SliderPosition, 2000); 
$("#start").prop('disabled', true); 
$("#start").click(function(){startAnimation(1);}); 
$("#stop").click(function(){startAnimation(0);}); 
function startAnimation(bool) { 
    if(bool == 0) { 
     $("#stop").prop('disabled', true); 
     $("#start").prop('disabled', false); 
     clearInterval(startinterval); 
    } else { 
     $("#stop").prop('disabled', false); 
     $("#start").prop('disabled', true); 
     startinterval = setInterval(SliderPosition, 2000); 
    } 
} 

工作摘錄

// var startinterval = setInterval(SliderPosition, 2000); 
 
$("#start").prop('disabled', true); 
 
$("#start").click(function() { 
 
    startAnimation(1); 
 
}); 
 
$("#stop").click(function() { 
 
    startAnimation(0); 
 
}); 
 

 
function startAnimation(bool) { 
 
    if (bool == 0) { 
 
    $("#stop").prop('disabled', true); 
 
    $("#start").prop('disabled', false); 
 
    // clearInterval(startinterval); 
 
    } else { 
 
    $("#stop").prop('disabled', false); 
 
    $("#start").prop('disabled', true); 
 
    // startinterval = setInterval("", 2000); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" id="start" value="Start Animation" /> 
 
<input type="button" id="stop" value="Stop Animation" />

+0

所以這是我已經嘗試過的事情之一。我使用了你的代碼,它不會在我的按鈕上做一件事。我應該有正確的選擇器,因爲onclick工作得很好。有了這段代碼,我仍然可以按下我的按鈕,並且它們的onclicks仍然會觸發。我真的不明白爲什麼這個示例代碼不起作用,因爲它應該工作.. – Runey

+1

@Runey你添加了jQuery嗎? Lemme爲你創建一個片段並使其工作。 –

+1

@Runey片段效果很好。檢查。由於'SliderPosition'沒有包含在演示中,我已經評論了它。請告訴我,如果您在控制檯中看到任何錯誤。 –