如何确保我的click函数只用Jquery执行一次?

时间:2012-05-07 15:39:38

标签: javascript jquery

我每次点击我的按钮时都会运行jquery代码,但我只想让它在click函数内执行一次。否则我的jquery代码会在我的td td中复制值。

这是我的jquery代码:

  $(function () {
        $('#next-step').click(function () {
            $('#S').append($('#SubjectTypeName option:selected').text());
            $('#T').append($('#TeamName option:selected').text());
            $('#C').append($('#ConsultantName option:selected').text());
            $('#K').append($('#company option:selected').text());
            $('#KP').append($('#ContactPerson').val());
            $('#P').append($('#date').val());
        });

    });

这是jsfiddle:http://jsfiddle.net/82U2W/

感谢任何帮助。

提前致谢!

3 个答案:

答案 0 :(得分:2)

我不确定我是否理解正确,如果您只想执行一次处理程序,请尝试.one

$(function() {
    $('#next-step').one('click', function() {
        $('#S').append($('#1 option:selected').text());
        $('#C').append($('#2').val());
        $('#T').append($('#3').val());
    });
});

DEMO

或许您希望将值复制而不是附加,然后尝试如下,

$(function() {
    var copiedText = 'Copied Value: ';
    $('#next-step').on('click', function() {
        $('#S').text(copiedText + $('#1 option:selected').text());
        $('#C').text(copiedText +$('#2').val());
        $('#T').text(copiedText +$('#3').val());
    });
});

DEMO

答案 1 :(得分:0)

我想说最简单的方法是使用jQuery.one

 $(function () {
        $('#next-step').one('click', function () {
            $('#S').append($('#SubjectTypeName option:selected').text());
            $('#T').append($('#TeamName option:selected').text());
            $('#C').append($('#ConsultantName option:selected').text());
            $('#K').append($('#company option:selected').text());
            $('#KP').append($('#ContactPerson').val());
            $('#P').append($('#date').val());
        });

    });

答案 2 :(得分:0)

使用一个可以在点击时控制按钮的变量。

$(function () {
    $('#next-step').click(function () {
        if(cmdCtrl){
           $('#S').append($('#SubjectTypeName option:selected').text());
           $('#T').append($('#TeamName option:selected').text());
           $('#C').append($('#ConsultantName option:selected').text());
           $('#K').append($('#company option:selected').text());
           $('#KP').append($('#ContactPerson').val());
           $('#P').append($('#date').val());
        cmdCtrl=false;
        }
    });

});