jquery – 在按钮上截取点击事件,要求确认,然后继续

前端之家收集整理的这篇文章主要介绍了jquery – 在按钮上截取点击事件,要求确认,然后继续前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
基于一个变量SomeCondition,我需要拦截一个按钮上的点击事件,并要求确认,如果他们说好,继续,否则忽略点击。

所以这样的东西:

if(SomeCondition) {

// disable click on button

var isOk = window.confirm("Are you sure?");

if(isOk) {
        $("#button1").click();
}

}

注意:button1已经通过javascript从外部.js文件通过点击事件连线,我无法更改。

我不知道点击事件是绑定的,所以如果SomeCondition是true,我必须禁用点击,然后要求确认,然后继续点击。

解决方法

进程isOK你的window.confirm内的按钮的功能
$('#button1').click(function(){ 
   if(window.confirm("Are you sure?"))
     alert('Your action here');
});

你会遇到的问题是当您触发“您确定”时已经发生点击调用preventDefault不会停止执行原始点击,如果它是启动您的原始window.confirm的。

一点鸡/鸡蛋问题。

编辑:阅读编辑后的问题:

var myClick = null;

    //get a list of jQuery handlers bound to the click event
    var jQueryHandlers = $('#button1').data('events').click;

    //grab the first jquery function bound to this event
    $.each(jQueryHandlers,function(i,f) {
       myClick = f.handler; 
       return false; 
    });

    //unbind the original
    $('#button1').unbind('click');

    //bind the modified one
    $('#button1').click(function(){
        if(window.confirm("Are You Sure?")){
            myClick();
        } else {
            return false;
        }
    });

猜你在找的jQuery相关文章