如何知道输入何时改变了它的类

时间:2013-01-02 19:27:02

标签: javascript jquery

我有删除类并将其添加到输入标记中的函数,我想在添加或删除类时,一个函数应该警告您已经进行了更改。

<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>

3 个答案:

答案 0 :(得分:3)

除非我遗漏了一些明显的东西,否则只需在课程改变后输入代码:

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

    alert('class change');
});

另外,semicolons

答案 1 :(得分: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>

答案 2 :(得分: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/