2011-11-08 9 views
6

विवरण: राउंडबाउट कैरोसेल के लिए एंड्रॉइड/आईफोन में निम्नलिखित कोड टुकड़ा का उपयोग किया जाता है। चौड़ाई और ऊंचाई में प्रत्येक LI 100px x 100px है। और लिंक एलआई के शीर्ष पर है।jQuery मोबाइल में क्लिक करने योग्य क्षेत्र में सूची आइटम सक्षम करें

<div data-role="content" data-theme="aa"> 
    <ul class="roundabout-holder"> 
     <li class="roundabout-moveable-item"> 
      <a href="<%= url_for :action => :graph %>"> <%= label_for:link %></a></li> 
     <li class="roundabout-moveable-item"> 
      <a href="<%= url_for :action => :graph %>"> <%= label_for:link %></a></li> 
     <li class="roundabout-moveable-item"> 
      <a href="<%= url_for :action => :graph %>"> <%= label_for:link %></a></li> 
     <li class="roundabout-moveable-item"> 
      <a href="<%= url_for :action => :graph %>"> <%= label_for:link %></a></li> 
     <li class="roundabout-moveable-item"> 
      <a href="<%= url_for :action => :graph %>"> <%= label_for:link %></a></li> 
    </ul> 
    </div> 

सीएसएस

.roundabout-holder { 
    list-style: none; 
    width: 75%; 
    height: 10em; 
    margin: 1em auto; 
} 

.roundabout-moveable-item { 
    height: 100px; 
    width: 100px; 
    border: 1px dotted #999; 
    background-color: #f3f3f3; 
    font-size: 2em; 
    cursor: pointer; 
} 

वर्तमान व्यवहार: आइटम में, एंकर केवल कड़ी के रूप में (दिए गए संदर्भ के लिए कूद) व्यवहार करते हैं

अपेक्षित व्यवहार: जब उपयोगकर्ता एलआई पर क्लिक किया गया, इसे दिए गए संदर्भ पर कूदना चाहिए। stackoverflow से

सापेक्ष संसाधन

How do I make the whole area of a list item in my navigation bar, clickable as a link?

Make A List Item Clickable (HTML/CSS)

eventhough समाधान मेरी समस्या के पास करने के लिए आते हैं। मुझे सामान्य समाधान खोजने की जरूरत है। क्योंकि मैं सभी के लिए एक या एक करके पैडिंग सेट नहीं कर सकता, क्योंकि लिंक लेबल समय-समय पर बदल सकता है।

जोड़ा गया और परीक्षण asfollows display:inline-block; और padding तो इस मुद्दे को हल कर रहा है, लेकिन समय गद्दी के लिए समय परिवर्तन होना चाहिए।

उत्तर

4

एक आसान तरीका यह करने के लिए है: सुनिश्चित करें कि

$('li.roundabout-moveable-item').click(function(e) { 
    e.preventDefault(); 
    $(this).find('a').click(); 
    return false; 
}); 

यह कर देगा कि में कहीं भी क्लिक <li> निहित <a> क्लिक करने के रूप में एक ही परिणाम प्राप्त होते हैं।

+0

e.preventDefault() के साथ; यह करने में सक्षम था। –

+1

यह अधिकतम स्टैक आकार हिट पैदा करता है ... अनंत समारोह कॉल। – Halsafar

0

मेरा मानना ​​है कि आप सीएसएस में display: block; का उपयोग <a> टैग को पूरे <li> पर लेने के लिए कर सकते हैं।

+1

यह डिस्प्ले जोड़ने के अलावा कुछ भी नहीं: ब्लॉक। पहले से ही मैंने कोशिश की है। –

1

ए सीएसएस समाधान

li.roundabout-moveable-item a{ 
    display:block; 
    width:100px; 
    height:100px; 
} 

बी Jquery समाधान

$("li.roundabout-moveable-item").click(function(){ 
    $('a', $(this)).trigger('click'); 
}); 

$("li.roundabout-moveable-item a").click(function(event){ 
    event.stopPropagation(); 
    // To prevent li-click being trigged 
}); 
+1

मैंने कोशिश की, कोई भाग्य नहीं लगता ... –

+0

यहाँ। http://jsfiddle.net/CEFLG/ वह कैसा है? –

+0

दिया गया उदाहरण कुछ अलग जेएस ढांचे के साथ है, मैं इसे लागू कर रहा हूं यह jQuery मोबाइल और सीएसएस के लिए है, इसलिए फिर भी मैं भाग्य नहीं हूं। –

संबंधित मुद्दे