Javascript适用于模拟器,但不适用于真实设备

时间:2016-01-11 16:15:22

标签: javascript jquery

背景与我昨天发布的这个问题有关:

on click event inside pageinit only works after page refresh

我得到了这个问题的答案,我在chrome devtools中尝试过,它运行正常。但是今天当我在真实设备(iPhone)上测试它时,它不起作用。当我使用旧代码时,按钮可以工作,但只有在刷新之后。当我使用那个接受的答案时,按钮不再起作用了。但它完美适用于chrome虚拟设备。希望有人可以提供帮助。

2 个答案:

答案 0 :(得分:0)

您可能希望为这样的移动设备使用触摸事件:

$("#close").on("touchstart", CloseBanner);

或者,如果您不想使用为不同平台分离事件,那么您可以使用这样的非jquery选项:

closeButton = document.getElementById('close');
closeButton.onclick = CloseBanner;

希望它有所帮助...

答案 1 :(得分:0)

我会这样做:

$(function () { //implicit DOMReady handler in jQuery
    $("#close").on("touchstart click", CloseBanner); //make sure you handle touch events
    $("#download").on("touchstart click", SetAppStorePath);
});

只是不打扰pageinit。编辑:哦,我明白了问题是什么!你不能在锚上遗漏href。将href="#"添加到这些锚点,它应该可以正常工作。另外,请考虑更改应用商店链接上的href,而不是设置窗口位置,因为人们喜欢查看链接的位置。

<div class="banner">
    <div class="container">
        <a id="close" href="#">&times;</a>
        <a id="download" href="#">Download</a>
    </div>
</div>

$('#close').attr('href', 'app store URL goes here');