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() { ... }に変更すると、機能します。関数ステートメントは、通常の変数とは異なり、定義の前に使用できます。


また、に2つのパラメーターを渡して2つのイベントハンドラーを追加することはできません.click()
代わりに、onClick()ハンドラーから明示的に呼び出す必要があります。

于 2010-12-06T13:03:50.490 に答える