2013-06-27 8 views
5

में सॉर्ट करने का प्रयास करते समय एक कस्टम ईवेंट को आग लगाना चाहते हैं जब उपयोगकर्ता सॉर्ट करने के लिए कॉलम हेडर पर क्लिक करता है, तो मैं अपना खुद का ईवेंट आग लगाना चाहता हूं। मैं इसे सॉर्ट करना नहीं चाहता हूं। मैं शोध कर रहा हूं, और ऐसा करने का एक अच्छा तरीका नहीं दिख रहा हूं।डेटाटेबल्स

मैं अपनी खुद की सामग्री करने के लिए सॉर्ट इवेंट पर बाध्य कर सकता हूं, लेकिन यह भी प्रकार होता है। मुझे यह नहीं चाहिए। अगर मैं सॉर्टिंग अक्षम करता हूं, तो सॉर्ट इवेंट कभी भी आग नहीं लगाता है, इसलिए यह काम नहीं करता है।

मैं सॉर्ट अक्षम कर सकता हूं और फिर शीर्षलेख पर क्लिक ईवेंट को आज़माकर कैप्चर कर सकता हूं, लेकिन मुझे उम्मीद थी कि ऐसा करने का एक बेहतर तरीका होगा। क्या किसी के भी पास कोई सुझाव है?

उत्तर

11

बहुत आसान है। आप बस क्लिक.डीटी हैंडलर को अनइंड करें और अपना खुद का जोड़ें। आपको सॉर्टिंग को अक्षम नहीं करना है।

उदाहरण

<table id="example"> 
<thead> 
    <th id="id">ID</th> 
    <th id="username">Username</th> 
</thead> 
<tbody> 
    <tr><td>1</td><td>A test</td></tr> 
    <tr><td>2</td><td>B test</td></tr> 
    </tbody>  
</table> 

जावास्क्रिप्ट

$(document).ready(function(){ 
    //init datatables 
    var table = $('#example').dataTable(); 

    //unbind sort event, prevent sorting when header is clicked 
    $('#example th').unbind('click.DT'); 

    //create your own click handler for the header 
    $('#example th').click(function(e) { 
     alert('Header '+$(this).attr('id')+' clicked'); 
     //here you can trigger a custom event 
    }); 

    //if you afterwards want to restablish sorting triggered by a click event 
    //here header "username" from example above 
    table.fnSortListener(document.getElementById('username'), 1); 
}); 

नोट: वहाँ datatables में कोई समर्पित "प्रकार" -event है। एलन जार्डिन का उल्लेख है कि यह भविष्य के संस्करण 2 में आ सकता है। http://datatables.net/forums/discussion/5141/capturing-sort-event-on-table-heading/p1

+0

अनबाइंडिंग काम नहीं कर रहा है। यह अभी भी छंटनी है। – user1652427

+0

हम्म। डेटाटेबल का कौन सा संस्करण आप उपयोग कर रहे हैं? यहां काम किया, 1.9.xx – davidkonrad

+0

कितना हास्यास्पद, संस्करण विशिष्ट होना चाहिए। '.unbind ('...') का उपयोग करना मेरे लिए बहुत अच्छा काम करता है। हालांकि, 'fnSortListener (...' का उपयोग करके कॉलम को क्रमबद्ध नहीं किया जा रहा है। –

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