1

我正在尝试创建自己的 jquery 插件,但是在将事件冒泡到页面时遇到问题(我认为这是问题所在)。

我这样称呼插件。

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

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

插件代码-

    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 会处理该事件。

任何人都可以帮忙吗?

提前致谢。

4

1 回答 1

2

您在onClickCallback设置变量之前通过了。

您的代码失败的方式与

alert(num);
var num = 3;

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


此外,您不能通过将两个参数传递给.click().
相反,您应该onClick()从您的处理程序显式调用。

于 2010-12-06T13:03:50.490 回答