【问题标题】:button click not working on mobile按钮点击在手机上不起作用
【发布时间】:2016-05-02 07:04:05
【问题描述】:

所以我有一个底部有 2 个按钮的表单。

<div class="col-xs-12">
    <div class="submit-button-mobile">Submit</div>
</div>
<div class="col-xs-12">
    <a href="/how_to_book.php">
        <div class="how-to-book-button-mobile">
            How to book?
        </div>
    </a>
</div>

原来我在submit-button-mobile 上有onclick="send_message();"(适用于桌面,但不适用于移动设备。此外,该标签在移动设备上也无法点击。

我在这里搜索并找到了这个答案以使其在移动设备上工作

        $('.submit-button-mobile').on('click touchstart', send_message);
        $('.how-to-book-button-mobile').on('click touchstart', function() {
            window.location.href = "/how_to_book.php";
        });

并且仍然有同样的问题,在移动设备上无法点击(在带有移动视图的 chrome 开发人员工具上尝试过,并在 iphone 和 android 上尝试过)。

send_message() 位于文件顶部的另一个 .js 文件中。 看起来是这样的

function send_message()
        {
            var a=document.forms["Form"]["name"].value;
            var b=document.forms["Form"]["email"].value;
            var c=document.forms["Form"]["message"].value;
            var d=document.forms["Form"]["surname"].value;

            document.getElementById("contact_message").innerHTML = "Sending your message... Please wait.";

            loadXMLDoc(a, b, c, d);
        }


        //pomocna funkcija za validaciju emaila
        function validateEmail(email) {
            var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
            return re.test(email);
        }

        //funkcija za slanje emaila
        function loadXMLDoc(name, mail, message, surname)
        {
            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                document.getElementById("contact_message").innerHTML=xmlhttp.responseText;
                document.getElementById("contact_message2").innerHTML=xmlhttp.responseText;
                }
              }

            // xmlhttp.open("GET","send_enquiry.php",true);
            xmlhttp.open("POST","send_enquiry.php",true);
            xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
            xmlhttp.send("name=" + name + "&email=" + mail + "&message=" + message + "&surname=" + surname);

            xmlhttp.send();
        }

【问题讨论】:

  • send_message 的定义?
  • 连控制都没有过来??
  • 在原帖中添加了 send_message 功能。连链接都失效了。我究竟做错了什么?当我在按钮的 div 内使用 onclick 标签调用它时,相同的功能在桌面视图上正常工作。
  • 您能否在文档在页面上准备好之后和之前通过警报跟踪它?并在click touchstart 中跟踪它是否触发了事件..
  • 这就是问题所在,还有另一个 div 越过按钮。我在按钮上设置了更高的 z-index 数字,即使使用原始选项(inline onclick="send_message()")它现在也能正常工作 抱歉打扰您了。感谢您的帮助

标签: javascript jquery


【解决方案1】:

可能您必须在定义send_message() 定义的同一文件中编写点击函数,并且点击定义应该在document.ready() 函数内。首先检查您是否在单击 div 时收到警报。

$(document).ready(function() {
$('.how-to-book-button-mobile').on('click touchstart', function(e) {
					e.preventDefault();
           alert("how-to-book-button-mobile");
});
$('.submit-button-mobile').on('click touchstart', function(e) {
           e.preventDefault();
           alert("submit");
});
});
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<div class="col-xs-12">
    <div class="submit-button-mobile">Submit</div>
</div>
<div class="col-xs-12">
    <a href="#">
        <div class="how-to-book-button-mobile">
            How to book?
        </div>
    </a>
</div>

This answer 也可能对您有所帮助。

【讨论】:

  • 这只是无法单击按钮的问题(我没有注意到它上面有一个覆盖)。谢谢你的帮助
  • 感谢您分享您的解决方案。这也可能对某人有所帮助。解决自己的问题时感觉很棒。
猜你喜欢
  • 2020-05-16
  • 2013-09-10
  • 2016-07-17
  • 1970-01-01
  • 2022-01-21
  • 2021-10-28
  • 2016-05-18
  • 2021-01-28
  • 1970-01-01
相关资源
最近更新 更多