0

壊れたデモ: http://jsfiddle.net/sTzCS/52/

フィドルに移動すると、リスト内のチームを新しい順序にドラッグ アンド ドロップできるはずです。各チームがシーズン中に獲得すると予想されるポイント数の値を入力することもできます。jQuery は、並べ替えが完了すると並べ替え順序を読み取り、各チームの入力値も取得しようとします。

フィドルのアラート (テスト目的で作成したもの) は、1 位になったチームと、そのチームが獲得すると予想されるポイント数を表示することになっています。ただし、アラートは発生しません。jLint は、コードが有効であると言います。アラートを使用して、実際に正しい値を取得していることを確認しています。アラートが機能しない理由を説明できますか?

<form<form id="new_entry">

<ul id="sortlist">

        <li id="Vancouver">Canucks<input type="text" name="name" id="vanpoints"></li>
        <li id="Toronto">Toronto<input type="text" name="name" id="torontopoints"></li>
        <li id="Montreal">Montreal<input type="text" name="name" id="montrealpoints"></li>
        <li id="Ottawa">Ottawa<input type="text" name="name" id="ottawapoints"></li>
        <li id="Calgary">Calgary<input type="text" name="name" id="calgarypoints"></li>
        <li id="Edmonton">Edmonton<input type="text" name="name" id="edmontonpoints"></li>
        <li id="Winnipeg">Winnipeg<input type="text" name="name" id="winnipegpoints"></li>
</ul>
<input type="submit" value="Add">
</form>

jQuery

$("#sortlist").sortable({
    stop: function(event, ui) {
        result = $("#sortlist").sortable("toArray");
        var attributes;
        attributes = {
            first: { team: result[0].id, value: result[0].children()[0].val() },
       second : { team: result[1].id, value: result[1].children()[0].val() },
        third: { team: result[2].id, value: result[2].children()[0].val() },
        fourth: { team: result[3].id, value: result[3].children()[0].val() },
        fifth: { team: result[4].id, value: result[4].children()[0].val() },
        sixth: { team: result[5].id, value: result[5].children()[0].val() },
        seventh: { team: result[6].id, value: result[6].children()[0].val() }
        };

        alert(attributes.first.team + attributes.first.value);
    }
});
4

1 に答える 1

1

$("#sortlist").sortable("toArray")文字列の配列であるソート可能なアイテムの ID の配列を返します。

id文字列にはプロパティとchildrenメソッドがありません。

于 2012-09-16T05:40:52.220 に答える