[英]JS variable access inside function impossible with .data() since jquery upgrade
我有這部分代碼可以追溯到2012年
(function ( $ ) {
$.widget('MMB.MMBBrowser', {
options: {
'path': {
'media_data': null,
'category_data': null
},
'translation': {
'items_found': 'item(s) found',
'are_you_sure': 'Are you sure?',
'media_browser': 'Media Browser',
'items_selected': 'item(s) selected',
'select': 'Select'
},
},
'browser': function (event) {
$this = $(this).data('MMBBrowser');
// outputs null
console.log($this);
// error, calls options to undefined
$this.options.translation.media_browser;
return false;
},
});
由於進行了全局更新(可能是jquery或小部件庫),所以我Cannot read property 'options' of undefined
請問如何訪問options.translation.media_browser
變量?
編輯:在瀏覽器功能輸出內添加那些console.log:
console.log($(this).data('MMB.MMBBrowser')); // undefined
console.log(this.options); // undefied
console.log(this); // the button's DOM i clicked on
來自http://jqueryui.com/upgrade-guide/1.10/#widget
(#8801)窗口小部件通常僅使用插件名稱作為鍵將其實例存儲在.data()中。 現在,實例也使用小部件名稱空間存儲。 例如,對話框小部件現在存儲在ui-dialog中而不是對話框中。 有關完整的詳細信息,請參見1.9棄用通知。
如果名稱空間是MMB.MMBBrowser
則可以通過$(this).data('MMBMMBBrowser');
來訪問它$(this).data('MMBMMBBrowser');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.