0

クラスを削除して入力タグに追加する関数があります。クラスを追加または削除するときに、1 つの関数が変更を加えたことを警告する必要があります。

<head>
    <script type="text/javascript">
        $(function() {
            $('a').click(function() {
                $('input').removeClass()
                var cl = $(this).attr('class')
                $('input').addClass(cl)
            })
        })

        function activitydone() {
            alert('class change')
        }
    </script>

    <style>
        .first { border:solid 1px #F00 }
        .second { border:solid 1px #0F0 }
        .third { border:solid 1px #00F }
    </style>
</head>

<body>
    <input type="text" onchange="activitydone()" />

    <a href="#" class="first">first</a>
    <a href="#" class="second">second</a>
    <a href="#" class="third">third</a>
</body>
4

3 に答える 3

3

これが不完全な例でない限り...

<script type="text/javascript">
    $(function() {
        $('a').click(function() {
            $('input').removeClass()
            var cl = $(this).attr('class')
            $('input').addClass(cl)
            activitydone(); // <-- Do this?
        })
    })

    function activitydone() {
        alert('class change')
    }
</script>
于 2013-01-02T19:30:43.617 に答える
3

明らかな何かを見逃していない限り、クラス変更の後にコードを追加してください。

$('a').click(function(){
    $('input').removeClass();
    var cl= $(this).attr('class');
    $('input').addClass(cl);

    alert('class change');
});

また、セミコロン.

于 2013-01-02T19:30:14.293 に答える
2

カスタム イベントを発生させ、それを処理できます。

$(function() {
    $('a').click(function() {
        $('input').removeClass();
        var cl = $(this).attr('class');
        $('input').addClass(cl);
        $('input').trigger('classChange');
    });
    $('input').on('classChange', function() {
        activitydone(this);
    });
})

function activitydone() {
    alert('class change');
};

編集注: マークアップからこれを削除します。onchange="activitydone()"

これは、両方の質問を組み合わせるのに役立つと思われるフィドルページです(少なくとも部分的に) http://jsfiddle.net/ekKG3/

于 2013-01-02T19:36:20.300 に答える