0

我有一个功能是删除类并将其添加到输入标签中,我想当我们添加或删除类时,一个功能应该提醒您已进行更改。

<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

除非我遗漏了一些明显的东西,否则只需将代码放在类更改之后:

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

    alert('class change');
});

还有,分号

于 2013-01-02T19:30:14.293 回答
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 回答
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 回答