Ich muss Formularelemente (einfache Kontrollkästchen) in einem contenteditable
<div />
platzieren. Es ist wichtig, dass die Kontrollkästchen nicht für die Show geeignet sind - der Benutzer muss in der Lage sein, darauf zu klicken und sie ein- oder auszuschalten. Leider funktionieren sie nicht, während contenteditable
eingestellt ist - es ist nicht möglich, zumindest in Firefox auf sie oder ihre Labels zu klicken. Verwenden von Formularelementen - Kontrollkästchen - innen contenteditable div
$('#enable-edit').change (function() {
$('div').attr('contenteditable', $(this).prop ('checked') ? 'true' : 'false');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div contenteditable="true">
<p>
<input type="checkbox" id="fail" /><label for="fail">You cannot click on me (nor edit this text) if contenteditable is true</label>
</p>
<p>
...but you can edit this text
</p>
</div>
<input type="checkbox" id="enable-edit" checked /><label for="enable-edit">Enable contenteditable</label>
Gibt es etwas, dass das Click-Ereignis zu beheben getan werden kann manuell über JavaScript ohne Behandlung? Und wenn nicht, wird die Handhabung der Klickereignisse auf diesen Kontrollkästchen eine akzeptable browserübergreifende Lösung sein?
Warum müssen nicht semantisch innerhalb des 'contenteditable' div sein? Kannst du es nicht außerhalb des bearbeitbaren Containers lassen und CSS verwenden, um das Layout so zu manipulieren, dass es aussieht, als wäre es "drinnen"? –
@Daniel_L huh? .. –
@Daniel_L es scheint zu kompliziert zu implementieren, vor allem in Anbetracht dessen, wie "contenteditable" macht den Inhalt * editierbare * (d. H. Unvorhersehbar bewegen). – Septagram