我使用Iscroll 5,除了一件事以外,一切都按照我想要的方式工作。 我无法点击表单中的提交按钮,没有任何反应。
这是我的代码,我尝试了很多东西,但我不知道如何解决它。
<script type="text/javascript">
var scroll;
function loaded() {
scroll = new IScroll('#contenu', {
tap:true,
desktopCompatibility: true,
scrollbars: false,
interactiveScrollbars: true,
freeScroll: true,
scrollX: true,
scrollY: true,
momentum: false,
mouseWheel: true,
click: true,
useTransform: false,
onBeforeScrollStart: function (e) {
var target = e.target;
while (target.nodeType != 1) target = target.parentNode;
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA' && target.tagName != 'BUTTON') {
e.preventDefault();
}
}
});
}
//disables browser mouse scrolling
if (window.addEventListener) {
window.addEventListener('DOMMouseScroll', wheel, false);
}
function wheel(event) {
event.preventDefault();
event.returnValue = false;
}
window.onmousewheel = document.onmousewheel = wheel;
</script>
答案 0 :(得分:1)
老兄,你是我的英雄,你的修复工作做得很好,但我已经做了一些改进,因为默认的处理程序是不同的:)
所以我替换了iscroll line 1565上的普通点击事件
case 'click':
if ( !e._constructed ) {
e.preventDefault();
e.stopPropagation();
}
break;
通过这一行,现在我没有问题我的发送和重置输入正常工作!
case 'click':
if ( !e._constructed ) {
if ( !e._constructed && target.type != "submit") {
e.preventDefault();
e.stopPropagation();
}
e.preventDefault();
e.stopPropagation();
}
break;
这在我的ipad Android手机上工作得很好,Chrome浏览器没有在IE上测试,但检查员告诉我一个错误,他说目标没有定义?
有人有想法解决这个问题:p?
ps作者:你必须在你的iscrolldéclaration中点击为false,否则你将有一个错误,人们不能在输入类型文本中写出正确的文本!
答案 1 :(得分:0)
我修好了,我可以帮助别人,
case 'click':
if ( !e._constructed ) {
if ( !e._constructed && target.type != "submit") {
e.preventDefault();
e.stopPropagation();
}
}
iscroll.js中的。
答案 2 :(得分:0)
从iscroll5
js file
if ( !e._constructed ) {
e.preventDefault();
e.stopPropagation();
}
与
if ( !e._constructed && e.target.type != 'submit' ) {
e.preventDefault();
e.stopPropagation();
}
答案 3 :(得分:0)
我遇到了同样的问题。其他答案没有解决我的问题。
通过完全删除点击选项click: true
来解决此问题。
options.click
要覆盖原生滚动,iScroll必须禁止某些默认设置 浏览器行为,例如鼠标点击。如果你想要你的申请 要响应click事件,您必须明确设置此选项 为真。 请注意,建议您使用自定义点击事件 相反(见下文)。
默认值:false