我正在开发mvc web应用程序。我在bundle
中添加了以下脚本 bundles.Add(new ScriptBundle("~/bundles/adminscripts").Include(
"~/Scripts/jquery.js",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.dcjqaccordion.2.7.js",
"~/Scripts/jquery.scrollTo.min.js",
"~/Scripts/jquery.nicescroll.js",
"~/Scripts/jquery.sparkline.js",
"~/Scripts/assets/jquery-easy-pie-chart/jquery.easy-pie-chart.js",
"~/Scripts/owl.carousel.js",
"~/Scripts/jquery.customSelect.js",
"~/Scripts/respond.js",
"~/Scripts/slidebars.js",
"~/Scripts/common-scripts.js",
"~/Scripts/sparkline-chart.js",
"~/Scripts/easy-pie-chart.js",
"~/Scripts/count.js",
"~/Scripts/Main.js"));
当我运行网站时,它给了我这个错误
0x800a01b6 - JavaScript运行时错误:对象不支持属性或方法'cookie'
如果我将这些脚本添加到我的_LayOut.cshtml
上,那么一切正常,而不是在捆绑中添加这些脚本。我在BundleTable.EnableOptimizations = true;
添加了Bundle.config
。我不知道问题在哪里。有人可以帮我解决这个问题吗?我从我的解决方案中搜索了cookie
个关键字,但我没有找到任何内容。请参阅以下屏幕截图
我已使用nugget命令行包管理器升级了我的脚本。但我的问题仍未解决。我找到了导致问题的脚本。
〜/ Scripts / common-scripts.js 这个脚本给我错误。
这是脚本代码
/*---LEFT BAR ACCORDION----*/
$(function () {
$('#nav-accordion').dcAccordion({
eventType: 'click',
autoClose: true,
saveState: true,
disableLink: true,
speed: 'slow',
showCount: false,
autoExpand: true,
// cookie: 'dcjq-accordion-1',
classExpand: 'dcjq-current-parent'
});
});
// right slidebar
$(function () {
$.slidebars();
});
var Script = function () {
// sidebar dropdown menu auto scrolling
jQuery('#sidebar .sub-menu > a').click(function () {
var o = ($(this).offset());
diff = 250 - o.top;
if (diff > 0)
$("#sidebar").scrollTo("-=" + Math.abs(diff), 500);
else
$("#sidebar").scrollTo("+=" + Math.abs(diff), 500);
});
// sidebar toggle
$(function () {
function responsiveView() {
var wSize = $(window).width();
if (wSize <= 768) {
$('#container').addClass('sidebar-close');
$('#sidebar > ul').hide();
}
if (wSize > 768) {
$('#container').removeClass('sidebar-close');
$('#sidebar > ul').show();
}
}
$(window).on('load', responsiveView);
$(window).on('resize', responsiveView);
});
$('.fa-bars').click(function () {
if ($('#sidebar > ul').is(":visible") === true) {
$('#main-content').css({
'margin-left': '0px'
});
$('#sidebar').css({
'margin-left': '-210px'
});
$('#sidebar > ul').hide();
$("#container").addClass("sidebar-closed");
} else {
$('#main-content').css({
'margin-left': '210px'
});
$('#sidebar > ul').show();
$('#sidebar').css({
'margin-left': '0'
});
$("#container").removeClass("sidebar-closed");
}
});
// custom scrollbar
$("#sidebar").niceScroll({ styler: "fb", cursorcolor: "#e8403f", cursorwidth: '3', cursorborderradius: '10px', background: '#404040', spacebarenabled: false, cursorborder: '' });
$("html").niceScroll({ styler: "fb", cursorcolor: "#e8403f", cursorwidth: '6', cursorborderradius: '10px', background: '#404040', spacebarenabled: false, cursorborder: '', zindex: '1000' });
// widget tools
jQuery('.panel .tools .fa-chevron-down').click(function () {
var el = jQuery(this).parents(".panel").children(".panel-body");
if (jQuery(this).hasClass("fa-chevron-down")) {
jQuery(this).removeClass("fa-chevron-down").addClass("fa-chevron-up");
el.slideUp(200);
} else {
jQuery(this).removeClass("fa-chevron-up").addClass("fa-chevron-down");
el.slideDown(200);
}
});
// by default collapse widget
// $('.panel .tools .fa').click(function () {
// var el = $(this).parents(".panel").children(".panel-body");
// if ($(this).hasClass("fa-chevron-down")) {
// $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up");
// el.slideUp(200);
// } else {
// $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down");
// el.slideDown(200); }
// });
jQuery('.panel .tools .fa-times').click(function () {
jQuery(this).parents(".panel").parent().remove();
});
// tool tips
$('.tooltips').tooltip();
// popovers
$('.popovers').popover();
// custom bar chart
if ($(".custom-bar-chart")) {
$(".bar").each(function () {
var i = $(this).find(".value").html();
$(this).find(".value").html("");
$(this).find(".value").animate({
height: i
}, 2000)
})
}
}();
答案 0 :(得分:1)
查看该dcjqAccordian的来源,它会尝试调用$.cookie
来保存它的状态。您需要添加jQuery.Cookie作为脚本才能工作:https://github.com/carhartl/jquery-cookie或https://www.nuget.org/packages/jquery.cookie/
所以,你的包看起来像是:
bundles.Add(new ScriptBundle("~/bundles/adminscripts").Include(
"~/Scripts/jquery.js",
"~/Scripts/jquery.cookie.*",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.dcjqaccordion.2.7.js",
... etc.
顺便说一句,我会避免使用简单的“jquery.js”引用;假设您正在使用NuGet包,通常使用:
bundles.Add(new ScriptBundle("~/bundles/adminscripts").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.cookie.*",
"~/Scripts/bootstrap.js",
"~/Scripts/jquery.dcjqaccordion.2.7.js",
... etc.