jquery升级后,无法使用.data()访问函数内部的JS变量
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
From http://jqueryui.com/upgrade-guide/1.10/#widget
(#8801)用于在.data()中存储实例的小部件插件名作为键。实例现在使用小部件名称空间。例如,现在存储了对话框小部件在ui-dialog而不是dialog中。参见1.9的弃用通知全部细节。
如果名称空间是MMB.MMBBrowser
,那么您可以通过$(this).data('MMBMMBBrowser');
访问它
相关文章:
- 访问函数外部的变量
- 从嵌套函数访问函数属性
- 访问函数对象的上下文属性|如何
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 访问函数中的函数名称
- 访问函数'的属性
- 访问函数内部的Polymer方法
- 从另一个文件访问函数的返回值
- 如何从AngularJS外部访问函数
- 如何在 JavaScript 中访问函数中的其他属性值作为对象属性值
- 从require()'d文件访问函数
- 如何访问函数中的变量
- JavaScript 访问函数构造函数中的“this”
- 跨不同作用域访问函数
- 访问函数内部的变量
- jQuery插件+AMD=如何访问函数
- 如何在javascript中访问函数内部的相同变量名
- 可以'无论我做什么,都无法访问函数外的数组
- 如何从module.exports访问函数
- 无法't访问函数中的对象