我正在尝试实现一种功能,允许用户通过滑动来删除邮件。带有消息的页面是一个外部页面,这意味着它在浏览器中打开:
window.open(url, '_blank', 'location=no');
滑动功能不起作用。它可以在桌面浏览器中,在移动浏览器中工作,但不能在我从应用程序中打开浏览器时使用。
这是我的功能。我按班级将它们分配给多个div:
$('.message').bind('swipeleft',function(event){
swipeleftHandler(this);
});
$('.message').bind('swiperight',function(event){
swiperightHandler(this);
});
这是我的观点:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
我不知道现在做了什么。我尝试了多个插件(Hammer.js,touchSwipe.js等)。他们都在除应用程序之外的任何地方工作。
任何人都知道可能出现什么问题?
答案 0 :(得分:1)
我不确定我是否可以将其称为修复,但在此处:
我的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,但我在一开始就使用它(也尝试过其他一些库)。所以我认为这是另一个脚本标签的错误。