我有mootools和Twitter Bootstrap(它使用JQuery来实现他们的Javascript功能)使用bootstrap-dropdown.js中的JQuery.NoConflict()几乎“很好”。
好吧,现在我正在尝试使用bootstrap-popover.js,它的工作方式不如bootstrap-dropdown.js。嗯,我想这是一个我无法理解的兼容模式问题。
我有这个错误的javascript:
<script type="text/javascript">
$(function () {
$('td[rel=popover]')
.popover({
offset: 10,
live: true
})
.click(function(e) {
e.preventDefault()
})
})
</script>
错误是:
Uncaught TypeError: Property '$' of object [object DOMWindow] is not a function
修改
我之前成功使用了popover(但没有使用mootools),我尝试重复相同的方式和代码。就在此错误的javascript代码之前,我正在链接这样的文件(已成功加载):
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
<script src="../js/html5.js"></script>
<script src="../js/bootstrap-dropdown.js"></script>
<script src="../js/bootstrap-alerts.js"></script>
<script src="../js/bootstrap-twipsy.js"></script>
<script src="../js/bootstrap-popover.js"></script>
<script src="../js/bootstrap-modal.js"></script>
<link rel="stylesheet" type="text/css" href="../css/bootstrap.css" />
我知道在<head></head>
之间应该会更好,但它应该在<body>
内部也能正常工作,而且它适用于其他bootstrap-alerts.js
和dropdown
。
另外,我在<table>
:
<thead>
<tr>
<th>Título</th>
<th>Data</th>
<th>Horário</th>
<th rel="popover" data-original-title="A title" data-content="And here's some amazing content. It's very engaging. right?">Ticket Associado <img src="../img/alert-icon.gif"></th>
<th>Entrar no Chat</th>
</tr>
</thead>
在twitter-Bootstrap / JQuery之后调用mootools。
有任何帮助吗?非常感谢你!
答案 0 :(得分:1)
ERM。似乎twitter popover代码存在问题,比任何事情都更有可能。
Property '$' of object [object DOMWindow] is not a function
- 听起来好像$不是你想象的那样。我认为noConflict的意思是恢复使用jQuery()
而不是$
- 您发布的代码并不完全是这样做的。
相反 - 如果在jquery之后加载,如果版本为1.2.3或更高版本,mootools将不会接管$
声明并回退到document.id
。
何时获得异常,运行时或与popover元素交互时?做console.log(window.$)
并看看它声明了什么,听起来它是一个原始的对象属性,而不是一个函数。
你运行任何需要使用$的特定mootools东西吗?需要比你提供的数据更多的数据。
你可能想要看的一件事就是这里的BootStrap的MooTools端口:http://dev.clientcide.com/?version=MooTools%20Bootstrap - 仍在进行中,但它有重要的东西。