2016-10-20 4 views
0

インラインDOMエレメントを表示するカラーボックスがあります。インラインカラーボックスを削除するinline divコンテンツを閉じるとき

初めてカラーボックスが表示されますが、それを閉じてもう一度開いてみるとうまくいきません。

colorboxを作成すると、#my-content-divの子要素が削除され、display:noneが#my-content-divに追加され、カラーボックスにokが表示されます。しかし、#my-content-divのコンテンツは尊敬されません。

<div style="display: none;"> 
     <div id="my-content-div"> 
      My content!! 
     </div> 
</div> 

<input type="button" id="show-my-content" value="Click to show my content"> 

私のJS:ここ

は私のHTMLです

$(document).ready(function() { 
    $('#show-my-content').live('click', function(){ 
     $.colorbox({ 
      inline: true, 
      href: "#my-content-div" 
     }); 
    }); 
}); 
+0

jsバインディングはjqueryバージョンが使用されているためです。このプロジェクトでは変更できません:-( –

答えて

0

.live()のjQuery 1.7のよう

$(document).ready(function() { 
    $('#show-my-content').on('click', function(){ 
     $.colorbox({ 
      inline: true, 
      href: "#my-content-div" 
     }); 
    }); 
}); 

.onに、.live()メソッドを変更してみてください推奨されません。 .on()を使用してイベントハンドラをアタッチします。 jQueryの古いバージョンのユーザーは、.live()よりも.delegate()を優先して使用する必要があります。

src:jQuery .live()

+0

ありがとうKevin。このプロジェクトでは古いバージョンのjqueryを使用していますが、デリゲートは機能しません(jsバインディングは作成されません)。ここで問題が発生するのは、colorboxが最初に開いて2回目のcolorboxが作成されても空の要素があるからです。つまり、jsバインディングが動作しています:-) –

+0

設定タブをクリックすると、ここで問題を再現できないようですjavascriptフィールドを開き、FRAMEWORKS&EXTENSIONSを古いjQueryに設定します:[jsfiddle](https://jsfiddle.net/kevin_kloet/6a3r88dq/1/) –

関連する問題