致力于MVC 5项目。这个特定页面是一个部分页面(Razor),如果这有任何区别。
我正在尝试使用ddchart jQuery库。 (http://kiersimmons.com/ddchart/index.html)我一直收到这个错误......
Uncaught TypeError: $(...).ddBarChart is not a function
发生错误的代码行在这里:
$("#chart_div_static").ddBarChart({
chartDataLink: "~/Scripts/plugins/ddchart/Chart_Data.js?1=10",
action: 'init',
xOddClass: "ui-state-active",
xEvenClass: "ui-state-default",
yOddClass: "ui-state-active",
yEvenClass: "ui-state-default",
xWrapperClass: "ui-widget-content",
chartWrapperClass: "ui-widget-content",
chartBarClass: "ui-state-focus ui-corner-top",
chartBarHoverClass: "ui-state-highlight",
callBeforeLoad: function () { $('#loading-Notification_static').fadeIn(0); },
callAfterLoad: function () { $('#loading-Notification_static').stop().fadeOut(0); },
tooltipSettings: { extraClass: "ui-widget ui-widget-content ui-corner-all" }
});
我知道函数存在,并且在调用ddBarChart之前放置了引用(包含函数的js文件)。仅供参考....
<script src="~/Scripts/plugins/ddchart/jquery.ddchart.js"></script>
作为测试:在我的jquery.ddchart.js文件中,我甚至创建了一个test()函数,它只是弹出一个警报。我在ddBarChart函数之前的行上写了这个函数。当我调用测试功能时它工作正常。所以我知道对外部js文件(jquery.ddchart.js)的引用是正确的。
****更新****
仅供参考:外部文件中的ddBarChart功能以...开始
jQuery.fn.ddBarChart = function(options) {
function setupDrillDown(strID, intDelay, strH, strW, strL) {
$(strID+ "> .ddchart-chart-final").css("z-index","2");
:
:
}
function aniDrillDown(strID,intDelay) {
$(strID+ " > .ddchart-chart-final > .ddchart-chart-wrapper-sub").animate( {width: "100%",height: "100%",left: "0%"}, intDelay-500, function(){aniCleanUp(strID)});
}
:
:
****更新说明**** (这是一个MVC 5部分页面(剃刀),如果这有任何区别。当我在另一个项目中创建一个普通的非部分页面时似乎工作。)
任何想法可能是什么?谢谢!
答案 0 :(得分:1)
之前我遇到过这样的问题。问题是jQuery库被包含两次。
这发生在以下顺序中:
jQuery.fn
在此之后,对jQuery的任何引用都将在新定义的jQuery对象上,该对象没有附加插件函数。
这与它只是在部分视图中包含时失败是一致的。您必须确保仅在包含单个 jQuery源之后才包含该插件。