2017-05-05 3 views
1

私のcshtmlファイルに次のコードがあります。javascriptからfancyboxを開く方法

<div style="display:none"> 
<div id="EditFancy" class="fancybox-infobar"> 
//Some not relevant input fields. 
</div> 
</div> 

私は、cshtmlファイルの上部に含まれているjavascriptからそのfancyboxを有効化/表示しようとしています。

しかし、私は同じcshtmlファイル内のリンクからそれを有効にする/表示することができます。次のコードを使用してください:

<a href="#EditFancy" class="btnForm" id="btnForm">asd</a> 
    <script type="text/javascript"> 
     $("#btnForm").fancybox(); 
    </script> 

ヘルプは大歓迎です。あなたはfancyboxを開き、イベントの委任を使用して、独自のクリックハンドラを作成することができますjavascript関数

+0

ページ内のどこかで動作しているコードがありますが、動作しますが、ファイルの先頭に配置すると機能しません。それをファイルの先頭に置くのはどうしてですか? –

+0

@MikeCの保守性がほとんど –

+0

@KyleBeckerそれは意味がありません。すべてのスクリプトをページの最下部に置くことは、メンテナンスが容易なことです。そうしないと非常に良い理由がある場合を除いて、何とかする必要があります。 –

答えて

0

あなたはjqueryの使用している場合は$(ドキュメント).ready()関数でコードをラップやwindow.onloadを使用してみてください()たとえば、次のようになります。

$("body").on("click", "btnForm", function() { 
    $.fancybox.open({ src: $(this).attr('href'), type : 'inline' }); 
}); 
+0

fancyboxを呼び出す関数は、$(document).ready()関数の中にあります。 –

+0

ライブラリが読み込まれる前にスクリプトが読み込まれているかどうか確認してください。ビューの共有レイアウトページでスクリプトセクションを管理していますか?これらの配慮が役に立つかもしれません。 – decoder

+0

はい、どこにロードされています。私はjQuery.fancybox.open(jQuery( '#btnForm'))を使うべきだと思います。ご協力いただきありがとうございます! –

関連する問題