gpt4 book ai didi

javascript - setTimeout 不适用于 safari 移动版

转载 作者:可可西里 更新时间:2023-11-01 02:24:38 25 4
gpt4 key购买 nike

我有一个功能,点击它时会显示一个菜单,我希望它在 5 秒后消失。这是我的 javascript - 它在桌面浏览器上正常工作,但在移动浏览器上不会消失。

$(function() {
$('#prod_btn').click(function() {
$(this).addClass('selected').next('ul').css('display', 'block');
setTimeout(hideMenu, 5000);
});
});

function hideMenu() {
$('#prod_btn').removeClass('selected').next('ul').css('display', 'none');
}

问题出在哪里?

谢谢

最佳答案

我刚刚遇到了同样的问题。我的代码在我的 Mac 上的任何浏览器中运行良好,但在 iOs 设备上它不起作用。

我在我的超时函数上使用“.bind(this)”,这就是导致我出现问题的原因。当我在我的脚本中使用“.bind”扩展函数对象时,它就像一个魅力。

我的代码是这样的:

searchTimeout = setTimeout(function() {
...
}.bind(this),250);

为了在 iOs 设备上工作,我(如上所述)刚刚添加了这个:

Function.prototype.bind = function(parent) {
var f = this;
var args = [];

for (var a = 1; a < arguments.length; a++) {
args[args.length] = arguments[a];
}

var temp = function() {
return f.apply(parent, args);
}

return(temp);
}

我在您的 setTimeout 上没有看到任何 .bind,但对于其他有同样问题的人来说,这可能就是问题所在。这就是我发帖的原因:-)

关于javascript - setTimeout 不适用于 safari 移动版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230380/

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