0

簡単に言えば、私の問題は、coffeescript で実装された jQuery-UI ハンドラー内から、ブートストラップ モーダルを作成して表示できないことです。ブートストラップのドキュメントにある標準のボタン アプローチを使用してモーダルを表示しようとすると、問題なく動作します。編集 3: これは、アセット パイプラインを使用する Ruby on Rails 3.2 アプリケーション内にあります。

<a href="#my-modal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

ただし、jQuery-UI イベント ハンドラー内からこれを行うと、次のようになります。

$("#my-modal").modal('show')

また

$("#my-modal").modal({})

次のエラーが表示されます。

Uncaught TypeError: Object [object Object] has no method 'modal'

私の html は非常に標準的です。ブートストラップ ドキュメントのサンプル html を使用しただけです。jQuery-UI イベント ハンドラ用の次の coffeescript があります。

$ ->
  $("#selectable").selectable(
    selected: (event, ui) ->
      $("#my-modal").modal({})
  )

編集:これはスコープの問題の匂いがするので、 -> と => を使ってモンキーを試してみましたが、それが何かを変えたかどうかを確認しましたが、それに対する変更は何の違いもありませんでした。

編集 2: javascript ライブラリが正しい順序で含まれていることを検証しました: jquery、jquery-ui、jquery_ujs、そして bootstrap.js。プルする必要がある別のライブラリがある可能性はありますか?

$("#my-modal") がモーダルDOMオブジェクトを正しく見つけることを検証しました

console.log $("#my_modal").html()

私はこれを理解するのに途方に暮れています。コードは完全に単純明快に見えます。

4

1 に答える 1