0

我正在尝试使用 jquery 进行确认部分。我有一个显示确认消息的取消按钮。然后再次单击是和否的确认按钮。

这是我脚本的 jsfiddle:http: //jsfiddle.net/jogesh_pi/TVfM9/

首先点击取消然后你得到是和否按钮,按否显示你的第一个统计是取消按钮,然后再次点击取消,然后按是,是显示警报消息,但我们尝试多次使用气泡警报框它没有刷新,希望你理解,

谁能告诉我我错过了什么?

$('input[name="cancel_upload"]').click(function(e){

            e.preventDefault();
            e.stopPropagation();

            var that    = $(this), 
                s_t     = $('.status'),                    
                c_b     = $('#cncl'),                
                c_c     = $('#cncl-conf'),                
                c_y     = $('input[name="cancel_y"]'),      
                c_n     = $('input[name="cancel_n"]');      

            c_b.hide();
            c_c.show();
            s_t.html('Cancel Transfer')
               .next()
               .hide();

            //Trigger Handle
            var combo = c_y.add(c_n);
            combo.click(function(e){
                e.preventDefault();
                e.stopPropagation();

                if(e.target.name == 'cancel_n')
                {
                    c_b.show();
                    c_c.hide();
                    s_t.html('Transferring...')
                       .next()
                       .show();
                } 
                else
                {
                    alert('Going to Cancel');
                    c_b.show();
                    c_c.hide();
                    s_t.html('Transferring...')
                       .next()
                       .show();
                }

            });

            return false;
});
4

1 回答 1

1

此问题与事件冒泡无关,这是因为您在每次单击取消按钮时注册了重复的事件处理程序

如果不删除以前的处理程序,则不应在另一个事件处理程序中注册事件处理程序。

在这种情况下,我建议在点击处理程序之外添加事件处理程序

尝试

var  s_t     = $('.status'),                    
    c_b     = $('#cncl'),                
    c_c     = $('#cncl-conf'),
    c_y     = $('input[name="cancel_y"]'),      
    c_n     = $('input[name="cancel_n"]');


//Trigger Handle
var combo = c_y.add(c_n);
combo.click(function(e){
    e.preventDefault();
    e.stopPropagation();

    if(e.target.name == 'cancel_n')
    {
        c_b.show();
        c_c.hide();
        s_t.html('Transferring...')
        .next()
        .show();
    } 
    else
    {
        alert('Going to Cancel');
        c_b.show();
        c_c.hide();
        s_t.html('Transferring...')
        .next()
        .show();
    }

});

$('input[name="cancel_upload"]').click(function(e){

    e.preventDefault();
    e.stopPropagation();

    var that    = $(this);      

    c_b.hide();
    c_c.show();
    s_t.html('Cancel Transfer')
    .next()
    .hide();

    return false;
});

演示:小提琴

于 2013-06-28T04:54:52.200 回答