【发布时间】:2016-08-15 17:19:31
【问题描述】:
我在使用回调函数中的参数值触发“touchmove”事件时遇到问题。如果我通过“警报”而不是功能,我会成功。示例中的基本概念是当文本框在选定的 div (ID="myDIV") 内滚动时,文本框在 'touchmove' 上增加“1”(obj.number)。
这是一个例子:
function myFunction(num) {
document.getElementById("divText").innerHTML = x += num;
}
function Scroller(area, obj) {
$divarea = document.getElementById(area);
$divarea.addEventListener("touchstart", function() {
obj.alertMe(obj.number); // THIS WORKS
});
$divarea.addEventListener("touchmove", function() {
obj.scrollMe(obj.number) // THIS DOES NOT WORK AND WHAT I NEED TO RUN, "obj.number" SHOULD BE 1
});
var x = 0;
}
$scroll = new Scroller("myDIV", {
number: 1,
alertMe: function(numberValue) {
alert(numberValue)
},
scrollMe: function(numberValue) {
myFunction(numberValue)
}
})
正文只是基本的 HTML:
<div id="myDIV" >
<!-- a bunch of text goes here so that it scrolls -->
</div>
<div id="divText" ></div>
非常感谢溢出社区帮助我发现我的错误,因为我已经花了太多时间在我知道(希望)将是一个简单的解决方案上。
谢谢!
【问题讨论】:
-
工作正常...
x未定义.. -
稍微好一点的演示:jsfiddle.net/rayon_1990/fawv25xe
-
x是一个局部变量 mate!无法从函数中访问! -
并删除
alert(不要用于调试),它将中断从touchstart到touchmove的流程 -
Rayon Dabre,你说得对,“x”被写成一个局部变量。该功能现在可以根据需要工作。非常感谢!
标签: javascript jquery function callback parameter-passing