2012-02-09 12 views
5

मैं ब्राउज़र के व्यूपोर्ट की 80% से अधिक पृष्ठों वाले पृष्ठों पर स्क्रॉलबार जोड़ने के लिए iScroll4 प्लगइन (http://cubiq.org/iscroll-4/) का उपयोग कर रहा हूं। किसी कारण से (और केवल इस मामले में) मैं इसे जोड़ता हूं और इनपुट पर क्लिक करने का प्रयास करता हूं, यह चयन नहीं करेगा। केवल अपने लेबल पर क्लिक करने से इनपुट का चयन होगा।मैं इनपुट पर क्लिक क्यों नहीं कर सकता?

iScroll4 और चयन करने योग्य इनपुट रखने के लिए मैं क्या कर सकता हूं?

+1

अजीब रूप से पर्याप्त 'इनपुट' तत्वों पर राइट-क्लिक करने से उस तत्व पर ध्यान केंद्रित किया जाएगा (भले ही आप संदर्भ मेनू को खारिज कर दें), लेकिन क्लिक नहीं कर रहे हैं। –

+0

हां, यह राइट-क्लिक और लेबल-क्लिक पर काम करता है लेकिन मेरे लिए भी बायाँ-क्लिक नहीं करता :) – Atadj

+0

इसमें आपके मार्कअप के साथ कुछ करना पड़ सकता है। आपको लेबल टैग के अंदर इनपुट को घोंसला नहीं करना चाहिए। मार्कअप गतिशील है? शायद आपको नेस्टेड टैग की संख्या को कम करने में देखना चाहिए। –

उत्तर

12

इस समाधान

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(); 
     } 
    } 
+1

धन्यवाद! एक जादू की तरह काम किया! – Atadj

+1

हां! यह मेरे लिए काम करता है। – kaleazy

+0

WOOOOOOOOOO! +1 धन्यवाद @ darryn.ten मुझे आपसे यह पूछने से नफरत है, क्या आप संक्षेप में समझा सकते हैं कि यह क्यों काम करता है: -/यदि आपको कुछ समय मिलता है। एक बार फिर धन्यवाद! – Red2678

4
$('input[type=text]').bind('touchstart click', function(){ 
    $(this).focus(); 
}); 
0
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); 
0

मैं संस्करण 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:/.*/ } 
} 
संबंधित मुद्दे