2010-12-06 120 views
1

我想创建我自己的jquery插件,但有问题冒泡事件到页面(我认为这是问题)。jquery - 插件泡沫点击事件

我打电话给这样的插件。

$('div.testdiv1').bpcolourpicker 
({ 
    onClick: onClickCallback 
}); 

var onClickCallback = function() 
{ 
    //alert('testpage'); 
} 

PLUGIN代码 -

var defaults = 
    { 
     returncolour: 'ff0000', 
     showtextbox: true, 
     onClick: function() { } 
    }; 
    var options = $.extend(defaults, options); 



    var onClick = function() 
    { 
     // default 
    } 

    // Select a colour 
    $(thisdiv).find('div.bpcolourpicker table.colours div').click(onClick, function() 
    { 
     var divtitle = RGBToHex($(this).attr('title')); 
     $(thisdiv).find('input#chosencolour').val(divtitle); 
    }); 

所以,我希望发生的是,当点击方法被激发,我想泡该事件为我打电话的“onClick主页:onClickCallback '所以我会想到onClickCallBack会处理这个事件。

任何人都可以帮忙吗?

在此先感谢。

+1

难道你不想调用`options.onClick`? – sje397 2010-12-06 13:06:50

回答

2

在设置变量之前,您正在传递onClickCallback

您的代码失败一样

alert(num); 
var num = 3; 

如果更改回调函数声明,如function onClickCallback() { ... },它会工作。与正常变量不同,函数语句在其定义之前是可用的。


而且,你不能传递两个参数来.click()添加两个事件处理程序。
相反,您应该从您的处理程序明确呼叫onClick()

+0

好吧,我交换了它们,但它仍然没有触发该功能。 – tmutton 2010-12-06 13:06:18