jquery - 插件泡泡点击事件

时间:2010-12-06 13:00:01

标签: jquery events plugins event-bubbling

我正在尝试创建自己的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会处理该事件。

有人可以帮忙吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

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

您的代码失败的方式与

相同
alert(num);
var num = 3;

如果将回调更改为函数语句,例如function onClickCallback() { ... },它将起作用。与普通变量不同,函数语句在定义之前是可用的。


此外,您不能通过将两个参数传递给.click()来添加两个事件处理程序 相反,您应该从处理程序中明确调用onClick()