我需要在视图中加载特定的jQuery库版本,在这里我将使用DataTables库。
问题是,我在all项目中使用了jQuery 3.1,并且在_Layout视图中包含了引用,但是DataTables只允许:
Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3如果可能的话,我如何在特定视图中加载不同版本的jQuery?
编辑:
关于DavidG评论,消息似乎是基于不支持jQuery v3的Bootstrap jQuery支持的库。
为了避免这个问题(“添加了对jQuery 3的支持”)和使用jQuery 3.1.0,我将更新到Bootstra3.3.7,但是DataTables问题仍然存在。
EDIT2 (解决方案):
我决定遵循Shyju的建议,让一切保持简单,并且基于一个稳定的jQuery版本,因此我将jQuery降级为2.2.4 (最后一个v2稳定版本),并将Bootstrap保持在最后一个版本(v3.3.7)。
DataTables版本保持不变(1.10.12)。
发布于 2016-08-08 14:07:12
如果您绝对需要为特定页面加载不同版本的库,您可以这样做。
在返回具有数据表的视图的特定操作方法中,设置一个ViewBag项
public ActionResult List()
{
ViewBag.NeedsSpecialJQuery = true;
return View();
}在布局(_Layout.cshtml)中,检查这个view袋项,并根据它的存在/值,有条件地加载所需的jQuery版本。
@{
if (ViewBag.NeedsSpecialJQuery != null && ViewBag.NeedsSpecialJQuery )
{
<script src="path to jQuery 1.9.1 here"></script>
}
else
{
<script src="path to other jQuery here"></script>
}
}虽然这可能解决当前的问题,但我强烈建议您考虑更新jQuery版本(以及依赖于jQuery的其他库),以便只需要一个版本。可能有点工作。但这是值得的。你不需要寻找像这样的解决方案
另一个选项是为特定视图使用单独的布局文件。
发布于 2016-08-08 14:06:51
使用jQuery.noConflict()实现这一点是可能的。
$以外的其他内容。例如jQuery2您可以继续对新库使用$处理程序,并且只要您想使用旧库,就可以调用您指定的名称,例如jQuery2。
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<script type="text/javascript">
var jQuery2 = $.noConflict(true);
</script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>如果您只想在特定页面中安装旧的jQuery库,您可以将这个答案与夏珠氏液组合起来,您可以在它们的ViewBag中设置一个布尔值,并像这样使用它。
@{
if (ViewBag.NeedsSpecialJQuery != null && ViewBag.NeedsSpecialJQuery)
{
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<script type="text/javascript">
var jQuery2 = $.noConflict(true);
</script>
}
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
}然后你可以调用DataTable
jQuery2("#datatable").DataTable();https://stackoverflow.com/questions/38831209
复制相似问题