1

我早些时候发布了一个类似的问题并收到了答案,在遇到新问题之前我只能部分工作。

这是我的 iframe 中 $(document).ready() 中的代码:

$("button#arrow-left", window.parent.document).on("click", function () {
    console.log("Got here");
    $(document).trigger("VEHICLE.CONTROLS.PRESSED_LEFT");
});

这几乎可以工作。当我单击父文档上的左箭头时,我现在将“到达这里”转储到我的控制台中。但是,据我所知,“VEHICLE.CONTROLS.PRESSED_LEFT”事件永远不会触发。

在我的 iframe javascript 的另一部分,我有以下几行:

$(document).on("VEHICLE.CONTROLS.PRESSED_LEFT", function () {
    console.log("Left button pressed, triggering left swipe.");
    $("div#swipe-container").swipe('swipe_left');
});

第二个控制台日志永远不会发生,并且我的滑动插件没有按应有的方式执行左滑动。

有人可以告诉我我做错了什么吗?

万一它是相关的,我基本上采用了一个在车辆中运行的 HTML5/JS 应用程序并将其移植到浏览器。应用程序本身在 iframe 中运行,父文档有一些模拟车辆控件。

我知道我可以直接绑定到触发滑动的代码区域内的按钮单击,但我的想法是我有一个 JS 文件充当应用程序和目标 API 之间的媒介。这样,无论代码是在实际车辆中运行,还是仅在我的模拟器中运行,我都可以保持代码同步。

编辑:此外,这与我在使用实际车辆 API 之前工作的功能几乎相同。我之前在使用车辆 API 时如何设置控件的示例:

sdk.vehicle.watchButtons("left", function () {
    $(document).trigger("VEHICLE.CONTROLS.PRESSED_LEFT");
});
4

0 回答 0