Nicht auf links klicken, die mit Iscroll 5
bin ich mit Iscroll 5, ich kann scrollen Sie mit diesem code, habe ich kein problem.
Das problem ist nur mit meinem iphone kann ich nicht auf den link klicken, und ich weiß nicht warum...
<script type="text/javascript">
var scroll;
function loaded() {
scroll = new IScroll('#contenu', {
tap:true,
desktopCompatibility: true,
scrollbars: true,
interactiveScrollbars: true,
freeScroll: true,
scrollX: true,
scrollY: true,
momentum: false,
onBeforeScrollStart: null,
mouseWheel: true
});
}
//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>
Wenn ich mit diesem code kann ich klicken aber ich kann nicht scrollen ...
<script type="text/javascript">
var myScroll;
var showkey =true;
function loaded () {
myScroll = new IScroll('#contenu', {
tap:true,
desktopCompatibility: true,
onBeforeScrollStart: function (e) {
var nodeType = e.explicitOriginalTarget ? e.explicitOriginalTarget.nodeName.toLowerCase():(e.target ? e.target.nodeName.toLowerCase():'');
if(nodeType !='select' && nodeType !='option' && nodeType !='input' && nodeType!='textarea' && !showkey) {
e.preventDefault(); //prevents showing keyboard - scrolling
}//otherwise, show keyboard, do default
if(!showkey) showkey = true;
},
});
$('a, input, #sendmsg, .ml_tabs').on('touchstart', function(e) {
e.stopPropagation();
});
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', function () { setTimeout(iScrollLoad, 200); }, false);
</script>
- eine Idee Jungs ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die klicken Sie auf option der Iscroll auf wahr
IScroll klicken Sie auf Dokumentation
{... click:true, ...}
hat den trick. Verrückt letzten 4 Stunden. Danke. +11: Sie könnte ein jsfiddle, um zu überprüfen, was falsch mit Ihrem code.
2: Warum deaktivieren scrollen mit der Maus durch Zugabe von eventlisteners? Setzen Sie einfach
mouseWheel: false
und du bist gut3: iScroll erfasst touchmove-Ereignisse und verarbeitet diese, um zu entscheiden, was der Nutzer tun will. Daher fügen Sie diese beim initialisieren iScroll:
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
4: ich sehe nicht, warum u sind setzen eines custo-Event-Handler wie
onBeforeScrollStart: null
Dies macht überhaupt keinen Sinn.Sie können z.B. aktivieren, deaktivieren, iScroll, wenn Sie dont wanna scrollen, wenn Dialog offen ist (wie ein ) so:
myScroll.on('beforeScrollStart', function(event)
{
if (isDialogOpen){
myScroll.disable();
}
else{
myScroll.enable();
}
});
5: mit einem einfachen Klick-Event-Handler, z.B. über eine
<div>
sollte funktionieren wie erwartet$( document ).on( "tap", "#mydiv", function( e ) {
e.preventDefault();
alert("mydiv clicked!");
});
6: Wenn initializnig iScroll verwenden
preventDefault: false, //do not prevent a possible click - we'll take care of it
"maksim.lin" hat ES RICHTIG!!!! Ich bin mir nicht erlaubt zu wählen:
Aber "auf:true," am besten ist, da das hinzufügen von "preventDefault: "false", wird die Arbeit zu tun, aber es wird dazu führen Sie Ihre Maus(bei Verwendung von PC) um Elemente auszuwählen, die außerhalb des scroll (text auswählen und side-scrolling-rucklig). "Klicken Sie auf:true," behebt das Problem auf dem Handy, und nicht auf Auswahl erstellen-Probleme auf dem PC.