我正在尝试创建自己的jquery插件但是在将事件冒泡到页面时遇到问题(我认为这是问题所在)。
我正在调用这个插件。
$('div.testdiv1').bpcolourpicker
({
onClick: onClickCallback
});
var onClickCallback = function ()
{
//alert('testpage');
}
PLUGIN CODE -
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);
});
所以我想要发生的是当click方法被触发时,我想将该事件冒泡到主页面,因为我正在调用'onClick:onClickCallback',所以我原以为onClickCallBack会处理该事件。
有人可以帮忙吗?
提前致谢。
答案 0 :(得分:2)
在设置变量之前,您正在传递onClickCallback
。
您的代码失败的方式与
相同alert(num);
var num = 3;
如果将回调更改为函数语句,例如function onClickCallback() { ... }
,它将起作用。与普通变量不同,函数语句在定义之前是可用的。
此外,您不能通过将两个参数传递给.click()
来添加两个事件处理程序
相反,您应该从处理程序中明确调用onClick()
。