作者averywu (看文不要只會用橫的看)
看板Ajax
標題[問題] 連續觸發事件
時間Thu Dec 22 17:27:39 2011
一直對這個很不行...
<span id = "start">1234</span>
<script....>
$(document).ready(function(){
$('#start').bind('mouseover',function(){
$('#s').val($('#s').val()+1)
})
})
</script>
這樣當MOUSEOVER發生時,只會觸發一次。
如果變成
$(document).ready(function(){
$('#start').bind('mouseover',function(){
$('#s').val($('#s').val()+1)
$('#start').mouseover();
})
})
會變成跑太快,而且永遠不會停。
之前遇的例子是按下按鈕後,上方的文字會每秒累加,放開後停止。不會弄就算了。
這次是onmouseover時,自動拉下捲軸(scroll)。相同問題,所以想知道怎麼處理。
有試過setinterval.
$('#start').bind('mouseover',function(){
go();
})
$('#start').bind('mouseout',function(){
stop();
})
function go(){
var s = setinterval('go()',5000);
$('#s').val($('#s').val()+1);
}
function stop(){
clearinterval(s)
}
這個...變數不是全域所以也停不下來...
這最基礎的東西就是我的罩門...
--
小惡魔的家
http://blog.pixnet.net/shiuju/
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.251.237.155
1F:→ musie:那把var s 拉到最外面去就好了.. 12/22 17:52
2F:→ averywu:拉到外面不就一載完HTML就執行了嗎? 12/22 22:31
3F:→ iam87king:語法有錯,$('#s').val+1改成$('#s').val()+1 12/22 22:48
4F:→ iam87king:不然就是$('#s').val(function(i, v){ return v+1 }); 12/22 22:49
5F:→ averywu:BBS上的語法只是表達想法,感謝指正。 12/23 04:47
※ 編輯: averywu 來自: 60.251.237.155 (12/23 04:48)
6F:推 musie:先在外面定義 var s; 在function go裡面再 s =setInterval. 12/23 09:16
7F:→ musie:這樣stop就可以吃到s了. 12/23 09:17