-1

jquery のこの行に .delegate メソッドを適用するにはどうすればよいですか?

$(function() {
    $("input[type='checkbox']").on('change', function() {
        if (this.checked) {
            $(".loadingItems").fadeIn(300);
            var color = encodeURI(this.value);
            $(".indexMain").load('indexMain.php?color=' + color, function() {
                $(".indexMain").fadeIn(slow);
            });
            $(".loadingItems").fadeOut(300);
        } else {
            $(".loadingItems").fadeIn(300);
            $(".indexMain").load('indexMain.php', function() {
                $(".loadingItems").fadeOut(300);
            });
        }
    });
});

形:

echo "<input type='checkbox' class='regularCheckbox' name='color[]' value='".$colorBoxes[color_base1]."' /><font class='similarItemsText'>   ".$colorBoxes[color_base1]."</font><br />";

PHP 受信色:

$color = $_GET['color'];
$items = $con -> prepare("SELECT * FROM item_descr WHERE color_base1 = :colorbase1");
        $items -> bindValue(":colorbase1", $color);
while($info = $items->fetch(PDO::FETCH_ASSOC)) 
{ ....

チェックボックス セットで複数の選択を許可する必要があります。

4

3 に答える 3

1

実際に何をしようとしているのかをもう少し示したので、コードの動作を変更する必要があり、.delegate()その問題の解決には役立ちません。

現在、 で使用する URL を作成するときに、チェックボックスの値を 1 つだけ調べていますindexMain.php。代わりに、その URL を作成するときに、チェックされているすべてのチェックボックスの値を調べる必要があります。

複数のチェックボックスがチェックされている場合に URL をどのように構築するかは言いませんが、構造的にはコードは次のようになります。

$(function() {
    $("input[type='checkbox']").on('change', function() {
        var colors = [];
        $("input[type='checkbox']:checked").each(function() {
            colors.push(this.value);
        });
        if (colors.length) {
            $(".loadingItems").fadeIn(300);
            $(".indexMain").load('indexMain.php?color=' + colors.join("+"), function() {
                $(".indexMain").fadeIn(slow);
            });
            $(".loadingItems").fadeOut(300);
        } else {
            $(".loadingItems").fadeIn(300);
            $(".indexMain").load('indexMain.php', function() {
                $(".loadingItems").fadeOut(300);
            });
        }
    });
});

.load()1 つ以上の色が選択されている場合、このコードは次のようなコマンドの URL を生成します。

indexMain.php?color=blue+yellow+green+orange

色が選択されていない場合はindexMain.php、他の引数なしで呼び出されます。

URL から色を解析して目的の応答を作成するのは、サーバー コード次第です。

于 2012-08-12T21:40:23.580 に答える
0

デリゲートは次のように記述できます

$("table").delegate("td", "click", function(){$(this).toggleClass("chosen");});

以下のように、最新の(jquery 1.7から利用可能)on()を使用して同じことを達成できます

$("table").on("click", "td", function(){$(this).toggleClass("chosen");});
于 2012-08-12T20:07:23.073 に答える
0
$(document).on('change', 'input[type=checkbox]', function() {
   // code
});

jQuery.on()を使えばそれができます。

の構文.on():

$(static_parent).on( eventName, target, handlerFunction);

wherestatic_parentは非動的コンテナーを意味し、targetイベントtargetをバインドする要素です。

于 2012-08-12T19:34:03.003 に答える