[英]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.