【问题标题】:jQuery works on Chrome, Firefox, IE but not on iPhonejQuery 适用于 Chrome、Firefox、IE 但不适用于 iPhone
【发布时间】:2013-12-10 22:57:27
【问题描述】:

此代码适用于计算机浏览器,但不适用于 iPhone。如果您能看到并告诉我问题,我将非常高兴。可能是什么原因?

<ol style="margin: 0px; padding: 0px; display:inline-block" id="update" class="timeline">
<form id="begenform" action="#" method="post">
<input type="hidden" id="feedid" value="<?php echo $feed[$i]['i']; ?>"/>
<input type="hidden" id="userid" value="<?php echo $_SESSION['u']; ?>" />
<input type="hidden" id="i" value="<?php echo $i; ?>" />
<?php if(!empty($liked['u']))echo"<span style='color:#cd2122'>Beğendin</span>"; else echo '<input id="begenbutton" type="submit" class="likesubmit" value="Beğen" />'?>
</form></ol>


<script type="text/javascript" >
$(function() {
$(".likesubmit").click(function() 
{
var gideni = $("#i").val();
var userid = $("#userid").val();
var feedid = $("#feedid").val();
var dataString = '&userid='+ userid + '&feedid=' + feedid + '&gideni=' + gideni;

$.ajax({
type: "POST",
url: "profilelike.php",
data: dataString,
cache: false,
success: function(html){
$("ol#update").append(html);
$("span.like").text("Ok");
}
});
return false;
}); });
</script>

【问题讨论】:

    标签: javascript jquery ios iphone cross-browser


    【解决方案1】:

    你需要监听“touchstart”和“touchend”事件:

    $('.myElement').bind("touchstart", function(e){alert('Clicked!')} );
    

    我的实现:

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
    
    $(document).ready(function() {
    
        $('#begenform').bind('touchstart click', function(e) {
    
            e.stopPropagation(); 
            e.preventDefault();
    
            var gideni = $("#i").val();
            var userid = $("#userid").val();
            var feedid = $("#feedid").val();
            var dataString = '&userid='+ userid + '&feedid=' + feedid + '&gideni=' + gideni;
    
            $.ajax({
                type: "POST",
                url: "profilelike.php",
                data: dataString,
                cache: false,
                success: function(html) {
    
                    $("ol#update").append(html);
                    $("span.like").text("Ok");
                }
            });
    
            return false;
        });
    });
    
    </script>
    
    <form id="begenform" method="post" action="#">
        <input id="begenbutton" type="submit" class="likesubmit" value="Beğen" />
    </form>
    

    对我来说工作正常。 试试看:)

    【讨论】:

    • 如何将它应用到我的代码中?是不是像 $('.likesubmit').bind("touchstart",click function() );
    • 当然,我已经在回复中添加了实现。看见。谢谢。
    • 非常感谢.. 代码可以单独工作,但它在我的完整脚本中不起作用.. 我不知道为什么.. 也许我的整个代码中的其他东西会因为某种原因使这个脚本崩溃.. 我不知道它可能是什么..当我尝试您的代码是一张干净的表格时,它工作得很好,但在我的完整代码中却没有..我会尝试找到原因..我真的不知道为什么会这样以及是什么原因这..
    • 正在查找所有 "(""{" 字符(打开和关闭)。浏览器控制台中是否有一些 JS 错误?
    • 我找到了原因..我不知道为什么,但一个“body”的 div id 导致了问题..我更改了 div 的名称,一切正常..很奇怪..但谢谢你非常喜欢你的时间..