2011-01-19 67 views
1

這應該是一個容易爲你。我前段時間做了一個插件,忘記了如何將插件設置爲一個變量然後使用它。我認爲我的代碼可能會幫助你理解我在說什麼。jQuery訪問插件作爲變量

var $bgcolourpicker1 = $('div.bgcolour1').bpcolourpicker(
    { 
     returncolour: bgcolour1, 
     cssposition: 'relative' 
    }); 

因此,控制已經建立,但在任何給定的時間,我可能想重新設置一個屬性。

$('div.bgcolour2').bpcolourpicker({ returncolour: bgcolour1 }); 

這樣的工作,但我相信它可以通過使用變量$ bgcolourpicker1例如。

$bgcolourpicker1.bpcolourpicker({ returncolour: bgcolour1 }); 

有誰知道這是否可以做到?我確信我以前看過它。

感謝

回答

0

我相信這種情況下,常見的設計會有點像這樣:

var $bgcolourpicker1 = $('div.bgcolour1').bpcolourpicker({ 
    returncolour: bgcolour1, 
    cssposition: 'relative' 
}); 

$bgcolourpicker1.bpcolourpicker('updateSettings', { returncolour: bgcolour2 }); 

你會那麼很可能保存使用data與jQuery對象的插件的情況下(在此case $('div.bgcolour1'),如果第一個參數傳遞給函數是一個字符串而不是一個對象,你可以使用已經存在的實例來執行。

在你的情況下,你甚至可以跳過m方法,只是檢查插件是否已被調用此對象:

$.fn.bpcolourpicker = function(settings) { 
    return $(this).each(function(i, e) { 
     if ($(e).data('bpcolourpicker')) 
      // … use the one you have already 
     else 
      // … regular plugin execution 
    } 
};