Проблемы с Twitter Bootstrap + Mootools + JQuery.NoConflict () при попытке использовать popover - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть mootools и Twitter Bootstrap (который использует JQuery для своих возможностей Javascript), работающие почти «хорошо» с использованием JQuery.NoConflict () внутри bootstrap-dropdown.js.

Что ж, теперь я пытаюсь использовать 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

EDIT:

Я успешно использовал 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>

И mootools вызывается после twitter-Bootstrap / JQuery.

Любая помощь? Заранее большое спасибо!

1 Ответ

1 голос
/ 19 декабря 2011

гм. Похоже, что есть проблема с поповерным кодом в твиттере, скорее всего.

Property '$' of object [object DOMWindow] is not a function - звучит так, как будто $ - это не то, что вы думаете. Я думал, что смысл noConflict в том, чтобы вернуться к использованию jQuery(), а не $ - код, который вы публикуете, точно не делает этого.

и наоборот - mootools, если загружен ПОСЛЕ jquery и версии 1.2.3 или выше, НЕ примет декларацию $ и вместо этого вернется к document.id.

когда вы получаете исключение, время выполнения или когда вы взаимодействуете с элементом popover? сделайте console.log(window.$) и посмотрите, что объявлено, похоже, что это свойство примитивного объекта, а не функция.

запускаете ли вы какие-либо конкретные вещи из mootools, которые требуют использования $? нужно больше данных, чем вы предоставили.

Единственное, на что вы можете обратить внимание - это порт BootStrap для MooTools: http://dev.clientcide.com/?version=MooTools%20Bootstrap - все еще в стадии разработки, но в нем есть важные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...