2010-05-06 15 views
7

में सेल टूलटिप मेरी SlickGrid तालिका में कुछ कक्षों में myClass कक्षा है।SlickGrid

मैं इस तरह उनके लिए एक टूलटिप कहा:

$(".myClass").hover(// Mouse enters 
        function(e) {...}, 
        // Mouse leaves 
        function() {...}); 

यह ठीक काम करता है, लेकिन अगर मैं नीचे करने के लिए तालिका स्क्रॉल करें, और फिर इसे वापस शीर्ष करने के लिए स्क्रॉल, टूलटिप अब और दिखाई नहीं देता।

क्या कोई कोई कामकाज सुझा सकता है?

धन्यवाद!

उत्तर

4

कोशिश:

$('.myClass').live('mouseover mouseout', function(event) { 
// works only on jQuery 1.4.1 and up 
    if (event.type == 'mouseover') { 
    // Mouse enters 
    } else { 
    // Mouse leaves 
    } 
}); 

वह काम नहीं करता है, मैं .myClass अनुमान लगा रहा हूँ किया गया है ताकि हर स्क्रॉल में फिर से जोड़ने की कोशिश को दूर ...

किसी भी तरह, live()

का उपयोग
+0

बहुत बढ़िया! यह काम करता है :) एक चीज मुझे परेशान करती है: मैं दस्तावेज़ों में देखता हूं कि ".hover() विधि माउससेंटर और माउसलेव घटनाओं दोनों के लिए हैंडलर को बांधती है"। तो, 'माउसओवरर' के साथ 'माउसओवर' को क्यों बदलना काम नहीं करेगा? मैंने जांच की और पाया कि अगर मैं 'माउसओवर' के बजाय 'माउसएन्टर' डालता हूं, तो 'event.type =" mouseover "' के दौरान' फ़ंक्शन (ईवेंट) {..} 'भी कहा जाता है। ऐसा क्यों है ? आपकी सहायताके लिए धन्यवाद ! –

+0

'होवर()' लाइव() 'पर काम नहीं करता है ... – Reigel

+2

लाइव() को बहिष्कृत किया गया है, resp। यह अब jQuery 1.9 में मौजूद नहीं है। – markus

14
 grid.onMouseEnter.subscribe(function(e, args) { 
      var cell = grid.getCellFromEvent(e) 
      var row = cell.row 
      var item = dataView.getItem(row); 
      //do whatever 
     }); 

     grid.onMouseLeave.subscribe(function(e, args) { 
      //do whatever 
     }); 

सेल, पंक्ति और आइटम कितना डेटा को पाने के लिए के लिए उदाहरण हैं

3

वहाँ Slickgrid के लिए एक प्लगइन है कि आइटम है कि एक सेल में दिखाने के लिए बहुत बड़े हैं के लिए टूलटिप्स प्रदर्शित करेगा (है कि यदि आप अंत में करने के लिए देख रहे हैं क्या है) है: SlickGrid: how to view full text for long cell entries?

0
1. include ../slick/plugins/slick.autotooltips.js 
ex)  

    <script src="/jsp/slick/plugins/slick.autotooltips.js"></script> 

2. add code 

    $.get(url,function(data){ 

    ... 

    grid.registerPlugin(new Slick.AutoTooltips({ enableForHeaderCells: 
    true })); 

    ... 


more... 

use jquery.ui.tooltips 

ex) 
<link rel="stylesheet" href="/jsp/jui/themes/base/jquery.ui.tooltip.css"/> 
<script src="/jsp/jui/ui/jquery.ui.core.js"></script> 
<script src="/jsp/jui/ui/jquery.ui.widget.js"></script> 
<script src="/jsp/jui/ui/jquery.ui.position.js"></script> 
<script src="/jsp/jui/ui/jquery.ui.tooltip.js"></script> 

open slick.grid.js and modify function 2436(line) 

    function setActiveCellInternal(newCell, opt_editMode) { 
     if (activeCellNode !== null) { 
     makeActiveCellNormal(); 
     $(activeCellNode).removeClass("active"); 
     try{$(document).tooltip("destroy");}catch(e){} // <<<< add code 
     try{$(document).tooltip();}catch(e){}   // <<<< add code 
     if (rowsCache[activeRow]) { 
      $(rowsCache[activeRow].rowNode).removeClass("active"); 
     } 
     } 
+1

यह स्पष्ट करना बेहतर होगा कि आपका कोड सही उत्तर क्यों है और समाधान कहां है। –

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