簡體   English   中英

單擊時的Javascript不適用於setInterval

[英]Javascript on click not working for setInterval

我有以下代碼-

 <html>
<head>
<title>Rebound</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">


    function ShowRandom() {
        var $span = $(".random");
        var oldTop = 0;
        var oldLeft = 0;
        var leftPos = 10;
        var topPos = 10;
        var flag = true;

        $(".random").on("click", "#lion", function(event) {
                alert(event.target.id);
            }); 

        $span.fadeOut(500, function() {

            var maxLeft = $(window).width() - $span.width();
            var maxTop = $(window).height() - $span.height();

            oldTop = topPos;
            oldLeft = leftPos;

            leftPos = Math.floor(Math.random() * (maxLeft + 1));
            topPos = Math.floor(Math.random() * (maxTop + 1));          

            $span.css({ left: leftPos, top: topPos }).fadeIn(500);
        });
    };
    ShowRandom();
    setInterval(function(){         
        $('.random').append("<span class='lab'></span>");
        ShowRandom(); 
    }, 1500);
     $('.random').delegate('.lab', 'click', function() {
        $('.random').remove('.lab');
        alert('single event trigger');
    });


</script>
<style>
    span { 
        display: inline-block; 
        position: absolute;
    }
</style>
</head>
<body>
    <div id="container">
        <span class="random"><img src="lion.jpg" width="50px" height="50px" id="lion"></span>

    </div>
</body>
 </html>

當我單擊圖像時,我只需要一個警報框。 但是我有多個警報框。 有辦法解決嗎?

謝謝

因為您會在每個時間間隔都保持點擊事件。

在每個內部事件中添加另一個事件,它不會覆蓋前一個事件。

嘗試移動

$(".random").on("click", "#lion", function(event) {
     alert(event.target.id);
}); 

在ShowRandom函數之外。

例如:

function ShowRandom(){...};

$(function(){

   $(".random").on("click", "#lion", function(event) {
         alert(event.target.id);
    }); 

    ShowRandom();

    setInterval(function(){
        $('.random').append("<span class='lab'></span>");
        ShowRandom(); 
    }, 1500);

    ...

});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM