【问题标题】:jquery show not working with href tel click on android chromejquery show not working with href tel 点击android chrome
【发布时间】:2020-05-24 13:06:12
【问题描述】:

我为移动设备创建了一个网页,我想打开一个 jquery ui 对话框,然后在单击链接时单击数字。 我所做的只是一个

$( "#dialog" ).dialog( "open" ) 

然后是一个

$("#link").click().  

链接是href="tel:2342342345"

如果我不在手机上,它会很好地打开对话框,但显然会忽略点击,因为它不是手机。我已经尝试了一个小时不同的事情,以下是一些结果:

如果我在点击时设置超时,如果不到一秒,它就不会打开对话框并调出电话。如果超过一秒钟,它将打开对话框,然后忽略电话。我尝试在窗口中添加一个焦点事件,一旦电话完成并且他们回到chrome,它会打开对话框,但它没有。我尝试在单击以稍后打开窗口之前添加一个 ajax 调用,但这似乎像 settimeout 一样工作。快的话就直接打开手机界面不弹出对话框,慢的话就永远不打开手机界面。

我也尝试过,只使用 display:none 创建一个 div,然后执行 $('#div').show(),它的作用完全相同。

不确定它是否适用于其他手机类型,因为我没有测试过。

我也尝试添加一个 onblur 事件来执行此操作,但在桌面上工作时在 Android 上也不会触发。

【问题讨论】:

  • 我也尝试添加一个 onblur 事件来执行此操作,但在桌面上工作时在 android 上也不会触发..
  • 不清楚您的问题是什么。如果您单击编辑并添加minimal reproducible example,其中包含预期事件和实际事件,而不是评论中的非结构化想法,也许我们可以更好地帮助您

标签: javascript android jquery jquery-ui mobile


【解决方案1】:

<html>
  <head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta content="">
   <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <style></style>
  </head>
  <body>
    <div>
    
    <a href="#" id="link">call</a>
    <!--open browser devtool and check in mobile divase -->
    </div>
    <script>
    $(document).ready(function(){

        if(window.innerWidth < 769){
            $('#link').attr("href", 'tel:2342342345');
        }
        if(window.innerWidth > 769){
            $('#link').attr("href", '#');
        }
        console.log($('#link').attr("href"))
    })
    </script>
  </body>
</html>

无法理解你想要什么。我想你想要这个根据你的写作 “如果我不在手机上,它会很好地打开对话框,但显然会忽略点击,因为它不是手机。我已经尝试了一个小时不同的东西,这里有一些结果:”

【讨论】:

  • 我会接受你的回答。我决定打开对话框并在其中添加电话链接,然后让他们再次手动单击电话链接。我怀疑在初始点击发生其他事情之后,安全性将不允许 jquery 点击,并且没有时间花在它上面。谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2022-12-28
  • 1970-01-01
  • 2022-11-20
  • 1970-01-01
  • 2022-12-04
  • 2023-03-26
相关资源
最近更新 更多