gpt4 book ai didi

Javascript 参数在许多事件上起作用

转载 作者:行者123 更新时间:2023-12-03 11:27:08 26 4
gpt4 key购买 nike

我正在尝试实现hammer.js来滑动页面(就像书本一样)并且我做到了。问题是这有效

  var idHammer1 = document.getElementById("pageHoja1")
//var hammertime = new Hammer(myElement, hammerOptionsPan);
var objHammer1 = new Hammer(idHammer1);
objHammer1.on('panleft panright', function(ev)
{
//DBLog("obj1 - gSceneActual Antes: " + gSceneActual + " // X: " + ev.center.x + " Y: " + ev.center.y);
if (ev.type==='panleft')
{
if (!(gSceneActual===2))
{
gSceneActual = 2;
$(":mobile-pagecontainer").pagecontainer("change", "#pageHoja2", { transition: "slide", reverse: false});
}
}
else if (ev.type==='panright')
{
}
});

但这不是:

var fSwipe1 = function(ev)
{
//DBLog("obj1 - gSceneActual Antes: " + gSceneActual + " // X: " + ev.center.x + " Y: " + ev.center.y);
if (ev.type==='panleft')
{
if (!(gSceneActual===2))
{
gSceneActual = 2;
$(":mobile-pagecontainer").pagecontainer("change", "#pageHoja2", { transition: "slide", reverse: false});
}
}
else if (ev.type==='panright')
{
}
}

var idHammer1 = document.getElementById("pageHoja1")
//var hammertime = new Hammer(myElement, hammerOptionsPan);
var objHammer1 = new Hammer(idHammer1);
objHammer1.on('panleft panright', fSwipe1(ev))

这也行不通

function fSwipe1(ev)
{
//DBLog("obj1 - gSceneActual Antes: " + gSceneActual + " // X: " + ev.center.x + " Y: " + ev.center.y);
if (ev.type==='panleft')
{
if (!(gSceneActual===2))
{
gSceneActual = 2;
$(":mobile-pagecontainer").pagecontainer("change", "#pageHoja2", { transition: "slide", reverse: false});
}
}
else if (ev.type==='panright')
{
}
}

由于我需要将此事件添加到许多页面(变量#),所以我无法对其进行硬编码...如何使其在循环内可变?

谢谢!

最佳答案

啊,在不知道错误程度的情况下,我确实明白了:

objHammer1.on('panleft panright', fSwipe1(ev));

在这里,您正在自动渲染该函数,但您实际上想要的是使用闭包,以便在事件发生之前不会渲染该函数。我不确定 ev 代表什么,但如果它是事件对象,那么这应该有效:

objHammer1.on('panleft panright', fSwipe1);

您所做的就是传入您想要作为回调的函数,甚至会自动调用该函数并将 event 对象作为第一个参数传递。

我注意到的其他一些事情:

  1. 确保包含 Hammer 的 javascript 库
  2. 确保在 gSceneActual===2 求值之前已定义 gSceneActual
  3. 确保包含 jQuery 库

关于Javascript 参数在许多事件上起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26870375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com