为什么我不能点击输入?
问题描述:
我使用iScroll4插件(http://cubiq.org/iscroll-4/)将滚动条添加到长度超过浏览器视口高度80%的页面。出于某种原因,当(并且仅在这种情况下)我添加它并尝试点击输入时,它将不会选择。只需点击其标签即可选择输入。为什么我不能点击输入?
我能做些什么来使iScroll4和可选择的输入?
答
尝试这种解决方案
myScroll = new iScroll('wrapper', {});
myScroll.options.onBeforeScrollStart = function(e) {
var target = e.target;
while (target.nodeType != 1) target = target.parentNode;
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA'){
e.preventDefault();
}
}
答
$('input[type=text]').bind('touchstart click', function(){
$(this).focus();
});
答
var myScroll;
function loaded() {
myScroll = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
myScroll.options.onBeforeScrollStart = function(e) {
var target = e.target;
while (target.nodeType != 1) target = target.parentNode;
if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA'){
e.preventDefault();
}
}
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', loaded, false);
答
我使用5.1.2版和它的工作。
window.myScroll = new IScroll ('#iscroll-wrapper',
probeType: 3,
mouseWheel: true,
scrollbars: true,
bounce: true,
keyBindings: true,
invertWheelDirection: false,
momentum: true,
fadeScrollbars: false,
interactiveScrollbars: true,
resizeScrollbars: true,
shrinkScrollbars: false,
click: false,
preventDefaultException: { tagName:/.*/ }
}
奇怪的是,右键单击'input'元素会将焦点移动到该元素(即使您关闭上下文菜单),但不能单击。 – 2012-02-09 11:41:22
是的,它适用于右键单击和标签单击,但不是左键单击也适用于我:) – Atadj 2012-02-09 11:44:29
它可能与您的标记有关。您不应该在标签标签中嵌套输入。标记是否动态?也许你应该考虑削减嵌套标签的数量。 – 2012-02-09 13:46:09