2017-12-30 16 views
0

Hallo ich möchte meine tableeditable auf doubleclick haben, wie würde ich das tun.Ich möchte HTML-Tabelle auf Doppelklick nur mit jquery Javascript bearbeitet werden

enter image description here

unten ist, was ich

$(function(){ 
 
    $('.zui-table').find('td').dblclick(function(){ 
 
     
 
    }); 
 
});
.zui-table { 
 
    border: solid 1px #DDEEEE; 
 
    border-collapse: collapse; 
 
    border-spacing: 0; 
 
    font: normal 13px Arial, sans-serif; 
 
} 
 

 
.zui-table thead th { 
 
    background-color: #DDEFEF; 
 
    border: solid 1px #DDEEEE; 
 
    color: #336B6B; 
 
    padding: 10px; 
 
    text-align: left; 
 
    text-shadow: 1px 1px 1px #fff; 
 
} 
 

 
.zui-table tbody td { 
 
    border: solid 1px #DDEEEE; 
 
    color: #333; 
 
    padding: 10px; 
 
    text-shadow: 1px 1px 1px #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="zui-table"> 
 
    <thead> 
 
    <tr> 
 
     <th>Name</th> 
 
     <th>Position</th> 
 
     <th>Height</th> 
 
     <th>Born</th> 
 
     <th>Salary</th> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr> 
 
     <td contenteditable>DeMarcus Cousins</td> 
 
     <td contenteditable>C</td> 
 
     <td contenteditable>6'11"</td> 
 
     <td contenteditable>08-13-1990</td> 
 
     <td contenteditable>$4,917,000</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

+0

Was ist das Problem? – Pedram

+1

@ Mr.X Der Klick ist das Problem, ich denke, –

Antwort

2

einfach contenteditable als attr auf click hinzufügen versucht haben. Mit dieser Lösung brauchen Sie nicht dblclick zu verwenden, da in erster click Sie attr fügen Sie dann auf den zweiten click können Sie Ihre Inhalte edit.

$('.zui-table').find('td').each(function() { 
 
    $(this).click(function() { 
 
    $('.zui-table td').not($(this)).prop('contenteditable', false); 
 
    $(this).prop('contenteditable', true); 
 
    }); 
 
    $(this).blur(function() { 
 
    $(this).prop('contenteditable', false); 
 
    }); 
 
});
.zui-table { 
 
    border: solid 1px #DDEEEE; 
 
    border-collapse: collapse; 
 
    border-spacing: 0; 
 
    font: normal 13px Arial, sans-serif; 
 
} 
 

 
.zui-table thead th { 
 
    background-color: #DDEFEF; 
 
    border: solid 1px #DDEEEE; 
 
    color: #336B6B; 
 
    padding: 10px; 
 
    text-align: left; 
 
    text-shadow: 1px 1px 1px #fff; 
 
} 
 

 
.zui-table tbody td { 
 
    border: solid 1px #DDEEEE; 
 
    color: #333; 
 
    padding: 10px; 
 
    text-shadow: 1px 1px 1px #fff; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="zui-table"> 
 
    <thead> 
 
    <tr> 
 
     <th>Name</th> 
 
     <th>Position</th> 
 
     <th>Height</th> 
 
     <th>Born</th> 
 
     <th>Salary</th> 
 
    </tr> 
 
    </thead> 
 
    <tbody> 
 
    <tr> 
 
     <td>DeMarcus Cousins</td> 
 
     <td>C</td> 
 
     <td>6'11"</td> 
 
     <td>08-13-1990</td> 
 
     <td>$4,917,000</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

Edit: auf diese topic Sie javascript Lösung finden, aber hier ist jquery einfache Lösung. Ich habe meine Antwort gelöscht, aber danach dachte ich, dass das vielleicht neben diesem Thema und für die Zukunft nötig wäre.

+1

Ihre Lösung 3 Klicks –

+0

@ A.Wolff Dank muss ich nicht erkennen, dass die Zeit. Jetzt funktioniert es. – Pedram

+0

Ya das ist besser, auch wenn für einen Doppelklick auf beide klicken in einem bestimmten Runden von Zeit zu tun haben. Hier können Sie einmal klicken, zehn Minuten warten und dann erneut klicken, um den TD editierbar zu machen, ABER es ist kein Doppelklick. Das heißt, ich denke, es ist akzeptables Verhalten für OP :) Man könnte natürlich damit umgehen ein Timeout verwenden, aber ich bin nicht sicher, ob es das wert –

Verwandte Themen