javascript - ajax调用成功后如何执行JS函数?

标签 javascript jquery ajax callback fullscreen

我想全屏演示我的窗口。

我有一个工作函数,但有一个问题:

我在用户单击 UI 中的某个按钮后发送 AJAX 调用,以获取一些数据并准备它,在此 ajax 调用之后(在成功上,我想完整地演示我的数据屏幕,但我不能这样做,因为它会引发错误: 无法在“Element”上执行“requestFullScreen”:API 只能通过用户手势启动。

如您所知,我有用户操作 - 单击按钮,但如果我尝试在 ajax 调用中执行全屏函数,这还不够。

我也尝试使用全局变量来拥有一个状态(我是否需要显示全屏(这取决于响应解析的结果(AJAX 调用后)),但它也不起作用。我是尝试这样:

ISFULLSCREEN = false;

function get_ajax() {
    ajax_call ()
    .success(response) {
        if (response.fullscreen) {
           ISFULLSCREEN = true;
        }
    }
 }


function useFullscreen() {
    if (ISFULLSCREEN) {
        use_fullscreen();
    }
}

我的按钮看起来像:

<button onclick="get_ajax();useFullscreen()" value="click me" />

但是函数 useFullscreen 的运行速度比 ISFULLSCREEN 的值更改为 true

有人知道如何解决这个问题吗?

非常感谢!

最佳答案

也许在您的 ajax 请求中,使用 async: false 使获取同步,从而将所有执行保持在同一事件中(来自用户点击)。

这样做的缺点是如果时间较长,可能会挂起页面

关于javascript - ajax调用成功后如何执行JS函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34969733/

相关文章:

javascript - 实例名称作为变量

javascript - 将变量传递给 jquery .css() 函数

javascript - 如何在 react 日期中添加一年的选择?

javascript - 根据选定的小时和分钟从表格中获取下一个最接近的时间

jquery - Bootstrap X-可编辑、文本区域的清除按钮

javascript - 如何使 jQuery 表格单元格 (td) 可单击以运行函数?

javascript - $(窗口)打开。 ('load' ) 函数适用于 Firefox,但不适用于 Safari/iOS 或 Chrome?

javascript - 如何使用 XAMPP 或 node.js 让 AJAX 在本地服务器上工作

javascript - 使用ajax jquery刷新页面而不使用重新加载功能

jquery - 如何重置 ajax 的先前响应并在每次点击时加载当前响应?