0

シリアル化された選択可能オブジェクトがあり、一度に1つのリストアイテムのみを選択するようにする関数が必要です。私は正しいコードを持っていると思いますが、それは機能していません。誰もが理由を知っていますか?

これが私のJavaScriptです:

$(function() {
    $( "#selectable" ).selectable({
        stop: function() {
            var result = $( "#select-result" ).empty();
            $( ".ui-selected", this ).each(function() {
                var index = $( "#selectable li" ).index( this );
                result.append( " #" + ( index + 1 ) );
            });
        }
    });
});


$("#selectable").selectable({
      selected: function(event, ui) {
            $(ui.selected).siblings().removeClass("ui-selected");
      }
});

htmlから選択できるものは以下のとおりです。<li>おそらく、タグにネストされた要素が原因で問題が発生しますか?

<ul id="selectable">
    <li><a><img src="images/CacheMenuGoogleCache2.png", alt="Google Cache" class="button" id="Google Cache" height ="34px" /></a></li>
    <li><a><img src="images/CacheMenuBingCache2.png", alt="Bing Cache" class="button" id="Bing Cache" height ="34px" /></a></li>
    <li><a><img src="images/CacheMenuYahooCache2.png", alt="Yahoo Cache" class="button" id="Yahoo Cache" height ="34px" /></a></li>
    <li><a><img src="images/CacheMenuWaybackMachine2.png", alt="WayBack Machine" class="button" id="WayBack Machine" height ="34px" /></a></li>
    <li><a><img src="images/CacheMenuCoralCDN2.png", alt="CoralCDN" class="button" id="CoralCDN" height ="34px" /></a></li>
    <li><a><img src="images/CacheMenuGigablast2.png", alt="Gigablast" class="button" id="Gigablast" height ="34px" /></a></li>
    <li><a><img src="images/CacheMenuWebCite2.png", alt="Webcite" class="button" id="Webcite" height ="34px" /></a></li>
</ul>

私はあなたの時間とあなたの助けに感謝します!

4

1 に答える 1

3

さて、私は問題を見つけました。私はそれを次のような関数の中に含める必要がありました:

$(function() {
    $("#selectable").selectable({
        selecting: function(event, ui){
            if( $(".ui-selected, .ui-selecting").length > 1){
                  $(ui.selecting).removeClass("ui-selecting");
            }
        }
    });
});

また、関数が少し異なることに気付くかもしれません。これは、他の関数が画像を選択したままにしたためです。

于 2013-03-13T06:11:23.570 に答える