2016-06-03 14 views
0

Eigentlich i binden, um ein dblclick Ereignis auf allen tr der TabelleBind Ereignis auf einigen Zeilen nur

$('#memberPaymentTableResult tr').bind("dblclick", null, memberPaymentSelectedRow); 

Structur meiner Tabelle

<tr>  
    <td data-payment-id={{paymentId}}>{{paymentId}}</td> 
    <td data-contract-id={{contractId}}>{{contractId}}</td> 
    <td>{{replace price "." ","}}</td> 
    <td>{{moment date "L"}}</td> 
    <td data-status={{status}}> 
</tr> 

Ist es möglich, DblClick-Ereignis nur auf Zeile zu binden wo Datenstatus! = ABGESCHLOSSEN?

Antwort

1

Eine Lösung ist:

Sie gemeinsame Klasse zu allen tr hinzufügen können, die Daten-Status abgeschlossen haben beim Erstellen html..so Sie direkt DblClick-Ereignis aus dieser Klasse

Zweite Lösung definieren:

Im dblclick-Ereignis können Sie überprüfen, ob der Datenstatus abgeschlossen ist, und dann false zurückgeben;

0

die Sie interessieren ..

$('#memberPaymentTableResult tr[data-status!="COMPLETED"]').bind("dblclick", null, memberPaymentSelectedRow); 
+0

scheinen nicht zu funktionieren –

1

Verwenden :has() selector mit einem not attribute selector und fügen weniger Veranstaltungen mit Event-Delegation

$("#memberPaymentTableResult").on("click", 'tr:has(td[data-status!="COMPLETED"])', function() { 
 
    $(this).toggleClass("selected"); 
 
});
.selected td { background-color: yellow; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<table id="memberPaymentTableResult"> 
 
    <tbody> 
 
    <tr> 
 
     <td data-status="xxxx">No</td> 
 
    </tr> 
 
    <tr> 
 
     <td data-status="COMPLETED">Yes</td> 
 
    </tr> 
 
    <tr> 
 
     <td data-status="COMPLETED">Yes</td> 
 
    </tr> 
 
    <tr> 
 
     <td data-status="xxxx">No</td> 
 
    </tr>  
 
    </tbody> 
 
</table>

Verwandte Themen