Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在使用IOS/Android等时,将ondblick更改为onclick事件_Php_Javascript_Jquery - Fatal编程技术网

Php 在使用IOS/Android等时,将ondblick更改为onclick事件

Php 在使用IOS/Android等时,将ondblick更改为onclick事件,php,javascript,jquery,Php,Javascript,Jquery,当页面检测到它在IOS/Android上运行时,如何将ondblclick事件更改为onclick事件。困难的是我不能只调用元素的ID,因为它将数据从数据库传输到Javascript函数 看看吧 服务器端: <?php echo '<table>'; while($row=mysql_fetch_array($query)){ echo '<tr><td ondblclick="sampFunc("'.$row[0].'","'.$r

当页面检测到它在IOS/Android上运行时,如何将ondblclick事件更改为onclick事件。困难的是我不能只调用元素的ID,因为它将数据从数据库传输到Javascript函数

看看吧

服务器端:

<?php         
echo '<table>';
while($row=mysql_fetch_array($query)){
    echo '<tr><td ondblclick="sampFunc("'.$row[0].'","'.$row[1].'")">';
        echo $row[0];
    echo '</td></tr>'; 
}
echo '</table>';
?>
<script>
$(document).ready(function(){
    if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)){
        /* ?????????????????? */
    }
});
function sampFunc(data1,data2){
    //-- Something
}
</script>

客户端:

<?php         
echo '<table>';
while($row=mysql_fetch_array($query)){
    echo '<tr><td ondblclick="sampFunc("'.$row[0].'","'.$row[1].'")">';
        echo $row[0];
    echo '</td></tr>'; 
}
echo '</table>';
?>
<script>
$(document).ready(function(){
    if(/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)){
        /* ?????????????????? */
    }
});
function sampFunc(data1,data2){
    //-- Something
}
</script>

$(文档).ready(函数(){
if(/Android | webOS | iPhone | iPad | iPod | BlackBerry/i.test(navigator.userAgent)){
/* ?????????????????? */
}
});
函数sampFunc(数据1、数据2){
//--某物
}

我认为您应该重新编写一些代码,以便更容易实现您想要的

尝试嗅探用户代理不是一个好主意。设备可以改变,新的操作系统可以启动,它需要更多的维护。特征检测是一种更好的方法,因为它涵盖了现在和将来的设备,并最大限度地减少误报

更新后的PHP现在使用HTML5属性并删除内联事件:

<?php         
echo '<table class="myclass">';
while($row=mysql_fetch_array($query)){
    echo '<tr><td data-a="'.$row[0].'" data-b="'.$row[1].'">';
        echo $row[0];
    echo '</td></tr>'; 
}
echo '</table>';
?>
或者只需使用更新的PHP和
doubletap
事件:

$('.myclass td').on('dblclick doubletap', function(){
      var data1 = $(this).data('a'), data2 = $(this).data('b');
      //-- Something 
});

当您可以从PHP检查设备类型并相应地更改输出的代码时,为什么您必须等待并检查客户端的设备类型?请查看$\u SERVER['HTTP\u USER\u AGENT']值。我不知道其中一个=)我会试一试谢谢..@Markipe-我真的不建议用户代理嗅探,请阅读此处,原因如下:。另外,关于我建议如何做的示例,请参见我的答案:)对不起,joe,我刚刚对php$\u服务器['HTTP\U用户\U代理']感到兴奋。不管怎样,我只是尝试了你的解决方案,它非常好,令人印象深刻。给你两个拇指。谢谢..@Markipe-谢谢,没问题:)我只是想给你看看另一个选择。