2010-12-06 117 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