2016-10-26 14 views
1

しばらくしてから開始して停止するアラームを作りたいと思います。だから私はsetIntervalをコードに入れます。また、アラームが鳴ったときにメッセージを表示したい。このため、最後のdivにテキストを作成し、jQuery hide()で非表示にします。ここで私のコードで、p.showはjQuery hide()によって隠されません。それは隠さないのはなぜhide()jqueryが機能しません

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <title>My Rest Alarm</title> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
</head> 
 

 
<body> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <form class="form-inline"> 
 
     <div class="form-group"> 
 
     <label for="sel1">Alarm will ring after :</label> 
 
     <input type="text" class="form-control" id="minute"> minute 
 
     </div> 
 
    </form> 
 
    </div> 
 

 
    <div class="row"> 
 
    <div class="alarm" style="display:none;"></div> 
 
    <button class="btn btn-success start"> Start </button> 
 
    <button class="btn btn-danger stop"> Stop </button> 
 
    </div> 
 

 
    <div class="row"> 
 
    <center><p><b id="clock"></b></p></center> 
 
    </div> 
 
    
 
    <div class="row"> 
 
    <p class="show">It's time to rest</p> 
 
    </div> 
 
</div> 
 

 
<script type="text/javascript"> 
 
$(document).ready(function(){ 
 
    $("p.show").hide(); 
 

 
    //show clock 
 
    var myVar = setInterval(myTimer ,1000); 
 
    function myTimer() { 
 
     var d = new Date(); 
 
     document.getElementById("clock").innerHTML = d.toLocaleTimeString(); 
 
    } 
 

 
    //start alarm 
 
    var alarm; 
 
    $("button.start").click(function(){ 
 
    var alarmVal = $("input").val(); 
 
    //console.log(alarmVal*60000); 
 
    $("p.show").delay(alarmVal*60000).fadeIn(); 
 
    alarm = setInterval(function(){ 
 
     //alert("Hello"); 
 
     $('div.alarm').append("<audio autoplay><source src='http://soundbible.com/mp3/A-Tone-His_Self-1266414414.mp3' type='audio/mpeg'></audio>"); 
 
    }, 
 
     alarmVal*60000); 
 
    }); 
 

 
    //stop alarm 
 
    $("button.stop").click(function(){ 
 
    clearInterval(alarm); 
 
    $("p.show").fadeOut(); 
 
    }); 
 
}); 
 
</script> 
 
</body> 
 

 
</html>

+0

以外のクラス名を使用して、問題を解決するには、AJAX呼び出しや動的ロードのいくつかの並べ替えているのですか? – jk121960

+1

「Run code snippet」 - >「スタート」をクリックしてみよう。バグレポート:ヘッドフォンを搭載した静かな部屋にいるとうまく動作しません。 – vlaz

+0

@vlaz - バグではなく、ユーザーを怖がらせることが目的のユースケースです。 – adeneo

答えて

3

ブートストラップは、クラス.showを使用して、その上にスタイル

display : block!important; 

を設定し、!importantスタイルがインラインスタイルをオーバーライドするので、それは動作しません。

がちょうどどのようにJSのブロックの上にHTMLを読み込んでください .show

関連する問題