Gar*_*t R 12 javascript css jquery
我正试图通过自己的方式改变div的左侧属性 - 当你徘徊时每秒一次,所以我做了这个:
$("div.scroll_left").hover(function(){
var left_num = $('div.license_video').css("left")
var left_num1 = parseInt(left_num, 10) - 1;
var timerID = setInterval(alert(left_num1), 1000);
//var timerID = setInterval(slideleft(left_num1), 1000);
},function(){
clearInterval(timerID);
});
//function slideleft(left_num){
//$('.license_video').css('left', left_num + "%");
//}
Run Code Online (Sandbox Code Playgroud)
从理论上讲,你会认为它重复,直到你移开光标,清除间隔.当我将鼠标悬停在它上面时,它会执行一次并且不会重复(没有错误).然后,当我将其悬停时,会出现错误"未捕获的ReferenceError:未定义timerID"
Que*_*tin 16
setInterval根本不工作.你没有将它作为第一个参数传递给它.
您正在alert 立即调用并尝试使用它的返回值作为重复的函数.
var timerID = setInterval(function () { alert(left_num1) }, 1000);
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 15
所以你在这里遇到两个不同的问题:
// (1) timerID needs to be defined in a scope accessible to both hover callbacks
var timerID = null;
$("div.scroll_left").hover(function(){
var left_num = $('div.license_video').css("left")
var left_num1 = parseInt(left_num, 10) - 1;
// (2) Pass a *function* to setInterval
timerID = setInterval(function () {
alert(left_num1)
}, 1000);
}, function(){
clearInterval(timerID);
timerID = null;
});
Run Code Online (Sandbox Code Playgroud)
当你写作
setInterval(alert(left_num1), 1000);
// or
setInterval(slideleft(left_num1), 1000);
Run Code Online (Sandbox Code Playgroud)
您传递的是通过调用alert()或slideleft()(分别)返回的值setInterval.你没有传递函数本身.
您正在分配null作为要呼叫的功能.为什么?因为您调用alert并将其返回值分配给setInterval参数.
相反,使用匿名函数:
setInterval(function() {doStuff();},1000);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20026 次 |
| 最近记录: |