在Cordova/Phonegap浏览器中滑动不工作



我正在尝试实现一个功能,允许用户通过滑动来删除消息。带有消息的页面是外部页面,这意味着它是在浏览器中打开的:

window.open(url, '_blank', 'location=no');

滑动功能不工作。它的工作在桌面浏览器,在移动浏览器,但不是当我打开一个浏览器从应用程序。

以下是我的函数。我将它们按类分配给多个div:
$('.message').bind('swipeleft',function(event){
     swipeleftHandler(this);
});
$('.message').bind('swiperight',function(event){
     swiperightHandler(this);
});

这是我的viewport

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

我不知道现在该怎么办。我尝试过多个插件(Hammer.js, touchSwipe.js等)。它们在任何地方都可以工作,除了应用内。

有谁知道是怎么回事吗?

我不确定我是否可以称之为修复,但它是这样的:

我的HTML中有两个脚本标签。({{}}标签属于web2py)

<script type="text/javascript">
    var userinfo = 1;
    function mailThisToMe(message_id){
        alert('uuid = ' + '{{=request.args(0)}}');
        $.post("{{=URL('page','mail_message_to_me')}}", { uuid: '{{=request.args(0)}}', message_id: message_id });
        console.log('mail this message id: ' + message_id + ' to me');
    }
</script>
<script>
    $(document).on('pageinit', "#messages_new", function () {
        function swipeleftHandler(message){
           $.ajax({
               type: "POST",
               url: "{{=URL('page','message_swipe')}}",
               data: { type: 'like', user_id: '{{=request.args(0)}}', category_id: $(this).attr('rel'), message_id: $(this).attr('id') },
               success: function () {
                   $(message).hide();
               },
               error: function () {
                   alert("could not reach server");
               }
           })
        }
        function swiperightHandler(message){
           $.ajax({
               type: "POST",
               url: "{{=URL('page','message_swipe')}}",
               data: { type: 'not_like', user_id: '{{=request.args(0)}}', category_id: $(this).attr('rel'), message_id: $(this).attr('id') },
               success: function () {
                   $(message).hide();
               },
               error: function () {
                   alert("could not reach server");
               }
           })
        }
        $(".message").swipe( {
           swipe:function(event, direction) {
               if (direction == 'left'){
                   swipeleftHandler(this);
               }
               else if (direction == 'right'){
                   swiperightHandler(this);
               }
           },
           threshold:50
        });
    });
</script>

我注意到当我注释掉第一个脚本标签时,滑动工作了。然后我把两个脚本标签放在一起,瞧!所以我不确定问题是什么,据我所知,第一个脚本标签没有任何错误。

我也回到了TouchSwipe.js,但我在一开始就使用它(也尝试了一些其他库)。所以我认为这是另一个脚本标签的错误。

相关内容

最新更新