0

ユーザーの To Do リストを表示する PHP プログラムを作成しています。私が持っているのは、基本的には、チェックボックスがある順序付けられていないリストです。チェックボックスをオンにすると、ユーザーはリスト項目を完了としてマークできます (つまり、テキストに取り消し線を付けます)。これが私がリスト用に持っているコードです

echo '<ul>';

for ($i=0; $i<6; $i++){

       $text = "This is item number " . $i;
       $complete = 'No';
       $order = 'This item is to be done #' . $i;

       echo '<li id = '. $i . '>';

    echo 'Item complete? <input type="checkbox" id="checkbox" />';
    echo '<span id = ' . $i . ' onLoad="crossOut()">Item: ' . $text . ' Complete? ' .$complete . '&nbsp&nbspWhen to do Item: ' . $order . '</span>';
    echo '</li>';

       }

echo '</ul>';


}

そして、これが私が使用しているjquery関数です

$(document).ready(function crossOut(){
    $("#checkbox").change(function crossOutText(){
        if($(this).is(":checked")){
            $("#liID").css("text-decoration", "line-through");
        }
    })
})

私が理解しようとしているのは、リスト ID を PHP から外部 JS ファイルの jquery 関数に渡す方法です。これにより、ユーザーが項目をチェックするたびに、そのリスト項目が完了したことをマークし、テキストに取り消し線を付けることができます。そのリスト項目の。私はjqueryを使用するのが初めてで、誰でも喜んで助けてくれると大歓迎です。

4

2 に答える 2

3
$(document).ready(function(){
    $("input:checkbox").change(function(){
        if($(this).is(":checked")){
            $(this).parents("li").css("text-decoration", "line-through");
            // ^^^^^^^^^^^^^^ strike through the parent list item.
        }
    })
})

CSS クラスを使用するより良い方法を次に示します。

$(document).ready(function(){
    $("input:checkbox").change(function(){
        $(this).parents("li").toggleClass('strike', this.checked)
        // ^^^^^^^^^^^^^^ strike through the parent list item.
    })
})

CSS:

.strike {
    text-decoration: line-through;
}

デモ: http://jsfiddle.net/maniator/unmLd/


免責事項:同じ ID を持つ複数の要素を持つことはできないため、両方の例で
に変更#checkboxしました! 代わりにクラスを使用してみてください。input:checkbox

また、コードの一部を削除crossout()します...それは何もせず、ページにエラーをスローする可能性があります...

于 2013-02-08T13:34:50.850 に答える
0

このようなもの?

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(document).ready(function(){
    $('input[type="checkbox"]').change(function(){
        if($(this).is(":checked")){
            $(this).parent().css("text-decoration", "line-through");
        }else{
            $(this).parent().css("text-decoration", "none");
        }
    });
});
</script>
<title>Untitled Document</title>
</head>

<body>

<?php
    echo '<ul>';
    for ($i=0; $i<6; $i++){
        $text = "This is item number " . $i;
        $complete = 'No';
        $order = 'This item is to be done #' . $i;
        echo '<li id = '. $i . '>';
        echo 'Item complete? <input type="checkbox" id="checkbox" />';
        echo '<span id = ' . $i . '>Item: ' . $text . ' Complete? ' .$complete . '&nbsp&nbspWhen to do Item: ' . $order . '</span>';
        echo '</li>';
    }
    echo '</ul>';
?>

</body>
</html>
于 2013-02-08T13:48:49.590 に答える