スキップしてメイン コンテンツに移動

投稿

2017の投稿を表示しています

OenLayersのmarkerポップアップ内リンクからBootstrap3のmodalを開けませんでした

長い。題名が長い。 覚書のつもりです。駄文をご容赦ください。 さて、通常Bootstrapのモーダルを呼ぶ場合、クリックオブジェクト(DIVやButtonなど)の属性にdata-toggle、data-targetに値を設定しておけば、そいつのクリックでモーダルが開きます。 私の場合はモーダルが開くときに合わせて、ajaxで他のphpからデータを引っ張ってきてモーダル内のテーブルに値を転記する必要がありました。そのため、クリックオブジェクトから値の渡しも必要でした。なので、前記の属性に加えてdata-whateverを設定して値を渡します。 <a href="javascript:void(0)" id="xxx" data-toggle="modal" data-target="#modalWindow" data-whatever="0">xxx</a> #モーダルウィンドウの設置は別途必要ですよ。ぐぐってね。 通常はこれでよいのですが、OpenLayersのマーカーポップアップ内Aリンクで同じようにしてやっても、モーダルは開きませんでした。 理由は不明です。OpenLayers内のオブジェクトからBootstrapのイベントを発火させる途中で、OpenLayersがイベントを無効化しているのではないかと思います。面倒なので調査してません。 なので、別の方法で行きます。 前記のクリックオブジェクトでonclick属性を設定し、任意の関数を実行するようにします。その際にクリックオブジェクトのパラメータも送ります。 <a href="javascript:void(0)" id="xxx" onclick="mkrOpenModal(0)>xxx</a> 受け取った関数でまた別にaリンクオブジェクトを動的に生成します。 function mkrOpenModal(id){ var tmpId = id + ""; var clickObject= $('<button>...