0

<ul id="sortable">の子が3 つ未満で<li>、各子に が含まれていないかどうかを確認しようとしていますqual="qualX"(「X」は整数で、「qual」は属性です)。

をクリックすると に が追加される3x2グリッドがあり<div id="qualities">ます。追加部分は機能しますが、同じものを複数回追加できず、合計で 3 つを超えないようにしたいと考えています。現在、3 つのリストリクターのみが機能しています。「同じことを2回追加しないでください」コードはそうではありません。現在は常に真であるためです(明らかに)。<div class="quality"><li><ul id="sortable"><li><li><li>

私のロジックコードは

$(".quality").click(function() {
    if($("#sortable").children().length < 3 && $("#sortable").children("li").each().attr("qual") !== $(this).attr("qual")) {
        $("#sortable").append("<li qual=" + $(this).attr("qual") + ">" + $(this).text() + "</li>");
    }
});

これを使用しているHTMLは

<ul>
    <li style="display:inline-block;">
        <div id="qualities">
            <div style="width:600px;overflow:hidden;background:blue;">
                <div class="quality" qual="qual1" style="width:200px;float:left;">
                    Quality 1
                </div>
                <div class="quality" qual="qual2" style="width:200px;float:left;">
                    Quality 2
                </div>
                <div class="quality" qual="qual3" style="width:200px;float:left;">
                    Quality 3
                </div>
                <div class="quality" qual="qual4" style="width:200px;float:left;">
                    Quality 4
                </div>
                <div class="quality" qual="qual5" style="width:200px;float:left;">
                    Quality 5
                </div>
                <div class="quality" qual="qual6" style="width:200px;float:left;">
                    Quality 6
                </div>
            </div>
        </div>
    </li>
    <li style="display:inline-block;">
        <div id="priority">
            <ul id="sortable">
                <!--<li>Item 1</li>-->
            </ul>
        </div>
    </li>
</ul>


<div id="priority">
    <ul id="sortable">
        <!--<li>Quality 1</li>-->
    </ul>
</div>
4

1 に答える 1

3
... && !$("#sortable").children("[qual=" + $(this).attr('qual') + "]").length

qualこれにより、属性セレクターを使用して一致する属性を持つ子が選択されます。


おそらくdata-qualover を使用する必要がありますqual

于 2013-03-16T20:08:29.483 に答える