.bind()语句不能在jQuery Easy Confirmation插件中使用

时间:2011-09-28 20:59:07

标签: jquery-plugins jquery

使用jQuery Easy Confirmation插件的人是否遇到过这个问题 - 确认框绑定的按钮在第一次点击后丢失了原来的点击事件?我必须将插件代码更改为此才能使其正常工作。这里的区别在于.bind和.click。有谁能解释为什么? PLS。如果我的问题不清楚,请告诉我。 THX!

原始插件代码:

     // Re-bind old events
            var rebindHandlers = function () {

                if (target._handlers != undefined) {
                    jQuery.each(target._handlers, function () {
                        //this is the difference
                        $target.bind(type, this);   
                    });
                }
            }

更改(工作)代码:

    // Re-bind old events
            var rebindHandlers = function () {

                if (target._handlers != undefined) {
                    jQuery.each(target._handlers, function () {
                        //this is the difference
                        if(type == 'click')
                            $target.click(this);
                        else {
                            $target.bind(type, this);   
                        }
                    });
                }
            }

1 个答案:

答案 0 :(得分:0)

尝试使用一些警报来查看正在发生的事情......

// Re-bind old events 
var rebindHandlers = function () {
            if (target._handlers != undefined) {
                jQuery.each(target._handlers, function () {
                    if(type == 'click')
                        alert('$target.click(' + this + ');');
                        //$target.click(this);
                    else {
                        alert('$target.bind(' + type + ', ' + this + ');');
                        //$target.bind(type, this);   
                    }
                });
            }
        }