Ich verwende das jQuery UI sortables Plugin, um die Neuordnung einiger Listenelemente zu ermöglichen. Innerhalb jedes Listeneintrags habe ich ein paar Optionsfelder, mit denen das Element aktiviert oder deaktiviert werden kann.Auswahl von Optionsfeldern beim Ziehen von Elementen mit jQuery Sortierfunktionen
Wenn das Element gezogen wird, werden beide Optionsfelder deaktiviert, was nicht so aussieht, als würde es passieren. Ist das richtiges Verhalten, und wenn nicht, was ist der beste Weg, um dies zu umgehen?
Hier ist ein Codebeispiel dieses Problem zu demonstrieren:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>jQuery Sortables Problem</title>
<script src="jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="jquery-ui.min.js" type="text/javascript"></script>
<style type="text/css">
.items
{
margin-top: 30px;
margin-left: 0px;
padding-left: 25px;
cursor: move;
}
.items li
{
padding: 10px;
font-size: 15px;
border: 1px solid #666;
background: #eee;
width: 400px;
margin-bottom: 15px;
float: left;
clear:both;
}
</style>
</head>
<body>
<ol id="itemlist" class="items">
<li id="1" class="item">
Item 1
<input name="status_1" type="radio" value="1" checked="checked" />enabled
<input name="status_1" type="radio" value="0" />disabled
</li>
<li id="2" class="item">
Item 2
<input name="status_2" type="radio" value="1" checked="checked" />enabled
<input name="status_2" type="radio" value="0" />disabled
</li>
<li id="3" class="item">
Item 3
<input name="status_3" type="radio" value="1" checked="checked" />enabled
<input name="status_3" type="radio" value="0" />disabled
</li>
<li id="4" class="item">
Item 4
<input name="status_4" type="radio" value="1" checked="checked" />enabled
<input name="status_4" type="radio" value="0" />disabled
</li>
</ol>
<script type="text/javascript">
$('#itemlist').sortable();
</script>
</body>
</html>
Sobald ein Listenelement mit der Maus gepackt wird, werden sowohl die Radio-Buttons deaktiviert lassen.
Wenn dies ein Fehler ist, wäre eine Problemumgehung, das Optionsfeld "aktiviert" automatisch auszuwählen, wenn das Objekt verschoben wird.
Update: Ich habe dies in FireFox 3, Internet Explorer 7, Opera 9.5 und Safari 3.1.2 getestet, alle auf Windows XP x64, und dieses Problem tritt in allen von ihnen auf.
Versuchte in FF3, IE7 und Chrome und funktioniert auf die gleiche. Optionsfelder sind gelöscht (FF und Chrom) oder zurückgesetzt (IE7) – Serxipc
Es sieht aus wie es von Ihrer Version von jquery.ui abhängt. Ich bekomme die gleichen Ergebnisse wie Sie, wenn ich 1.5.2 benutze, aber ich bekomme genau das Gegenteil mit 1.6rc2 (Radio-Buttons in FF und Chrom mit Helfer gelöscht und persistieren mit Platzhalter.) IE scheint nicht so oder so für mich arbeiten entweder. –
Sie haben Recht. Bei 1.6rc2 wird standardmäßig das Element innerHtml in den Platzhalter kopiert. Wenn Sie die Platzhalteroption auf eine beliebige nicht leere Zeichenfolge setzen, wird dieses Verhalten überschrieben. – Serxipc