尝试使用popover时Twitter Bootstrap + Mootools + JQuery.NoConflict()出现问题

时间:2011-12-18 15:58:14

标签: javascript jquery mootools twitter-bootstrap

我有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.jsdropdown。 另外,我在<table>

中以这种方式调用popover
<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。

有任何帮助吗?非常感谢你!

1 个答案:

答案 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 - 仍在进行中,但它有重要的东西。