1

リストを動的に作成しています。onclick イベントを使用して JavaScript を呼び出しましたが、これは機能します。リストから選択した項目を別の色にすることはできません。

これはコード例です:

<!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>
    <title></title>`enter code here`
    <script src="scripts/jquery.js" type="text/javascript"></script>
    <link href="stylesheets/jquery.mobile.css" rel="stylesheet" type="text/css" />
    <script src="scripts/jquery.mobile.js" type="text/javascript"></script>
    <script>

        $(document).ready(function () {
            var $al = $("#mylist");
            $al.append("<li ><a id='a1' href=\"#\" rel=\"external\" onclick=\"test('selected test 1'); return false\">TEST 1</a></li>");
            $al.append("<li ><a id='a2' href=\"#\" rel=\"external\" onclick=\"test('seleced test 2'); return false\">TEST 2</a></li>");
        });

        function test(text) {
            $("#divtest").html(text);
        } 

        $("#myList li a").click(function () {
                $('#myList li > div').each(function (index) {
                    $(this).removeClass("ui-btn-active");
                });
                var p = $(this).parent();
                $(p).addClass('ui-btn-active');
            });

    </script>
</head>
<body>
    <div data-role="page" id="profile">
        <div data-role="header" data-position="fixed">
        </div>
        <!-- /header -->
        <div data-role="content">
            <ul id="mylist" data-role="listview" data-inset="true">
            </ul>
        </div>
        <div id='divtest'>

        </div>
        <!--/content-->
        <div data-role="footer" data-position="fixed">
        </div>
        <!--/footer-->
    </div>
</body>
</html>
4

3 に答える 3

0

あなたがする必要があるのは、 data-theme='a'属性を li 要素に追加し、必要なテンプレートを選択することだけです。

この属性についての詳細: http://jquerymobile.com/demos/1.2.0/docs/content/content-themes.html

.listview('refresh');も実行する必要があります。リストビューのスタイルを変更します。

これがあなたのコードからの実際の例です: http://jsfiddle.net/Gajotres/z5Vhm/

そして、ここにあなたのコードがあります:

<!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>
    <title></title>`enter code here`
    <link href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" rel="stylesheet" type="text/css" />
    <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js" type="text/javascript"></script>
    <script>

        $(document).ready(function () {
            var $al = $("#mylist");
            $al.append("<li data-theme='a'><a id='a1' href=\"#\" rel=\"external\" onclick=\"test('selected test 1'); return false\">TEST 1</a></li>");
            $al.append("<li data-theme='b'><a id='a2' href=\"#\" rel=\"external\" onclick=\"test('seleced test 2'); return false\" >TEST 2</a></li>");
            $al.listview('refresh');
        });

        function test(text) {
            $("#divtest").html(text);
        } 

    </script>
</head>
<body>
    <div data-role="page" id="profile">
        <div data-role="header" data-position="fixed">
        </div>
        <!-- /header -->
        <div data-role="content">
            <ul id="mylist" data-role="listview" data-inset="true">
            </ul>
        </div>
        <div id='divtest'>

        </div>
        <!--/content-->
        <div data-role="footer" data-position="fixed">
        </div>
        <!--/footer-->
    </div>
</body>
</html>
于 2013-01-15T19:38:04.847 に答える
0

これを行うには、リスト項目から .addClass と .removeClass を呼び出す必要があります。必要な色に応じて、特定のクラスを削除/追加する必要があります。まず、アイテムにクラス ui-btn-active を追加できます。

于 2013-01-15T19:31:20.500 に答える
0

現在のハイパーリンクの親 Li を見つけて、親に背景色を適用する必要があります。

$('a').click( function() {
  $(this).parent().css({'background-color' : 'red' });
});

この jsFiddle を確認してください: http://jsfiddle.net/p42SX/3/

于 2013-01-15T19:38:33.270 に答える