与ID冲突一样,相似的页面开发同样会碰到JS方法与参数冲突问题
建议开发者对使用回调的组件由jQuery方法来代替框架[data-toggle]方法实现,并在页面中使用
(function(){}())
来局部定义方法与参数,避免全局变量污染
例如navtab中的上传组件(建议所有上传组件使用jQuery方法实例化使用):
<div data-filter="uploadButton" class="text-center"></div>
<script>
// 在多弹窗情况下,可能出现非第一个弹窗$.CurrentDialog获取不正确问题,这种情况下可利用以下方式获取当前弹窗
// $(document).one(BJUI.eventType.initUI, function(e) {
// var $box = $(e.target)
// ..其他代码
// })
(function () {
var $box = $.CurrentNavtab
$box.findFilter('uploadButton').upload({
uploader: '..',
fileSizeLimit: 1024000000,
auto: true,
buttonText: '请选择导入文件',
previewImg: false,
fileTypeExts: '*.xls;*.xlsx;*.csv',
onUploadSuccess: function (file, data, $element) {
if (typeof data === 'string') {
try {
data = JSON.parse(data)
} catch (e) {
data = {
code: 300,
message: '未知错误'
}
}
}
if (data.statusCode === BJUI.statusCode.ok) {
$(this).alertmsg('ok', data.message)
} else {
$(this).alertmsg('error', data.message)
}
},
onUploadBefore: function (formData) {
return true
},
onUploadComplete: function () {
}
})
}())
</script>