2012-03-31 5 views
0

まずはこれまでうまく動作していたjQueryカラーボックスプラグインを使用していますが、ボタンを使用してカラーボックスを閉じたいとします。残念ながら、jQueryを使用してそのIDを選択することで、そのボタンのclickイベントをトリガすることはできません。代わりに、closepan()というjavascript関数を呼び出す必要があります(この動作は残念ながら必須です)。jQueryカラーボックスを閉じるグローバル関数を作成するにはどうすればいいですか?

私は

closepan() { 
$.colorbox.close(); 
} 

に最初のケース関数を作成してみました:

$(document).ready(function(){...}); 

内部をその後私は、エラーclosepanが定義されていないです。

二ケース

$(document).ready(function(){...}); 

前にしかし、それは未定義であるカラーボックスの方法です!

私はこのトピックに関して、stackoverflow.comの周りに見いだしたいくつかの解決策を手にしています。私はこれを動作させる方法を理解できません!

つまり、$ .colorbox.close();を実行できるclosepan()という名前の関数を作成する方法。私のボタンのために世界的に利用可能なのですか?

答えて

2

ます場合は、変数や関数を作成どんなにそれをwindowに作成すると、それは世界中で利用可能になります。

window.closepan = function() { 
    // hello there 
} 
+0

Yessssありがとうございました。これは、あなたのアドバイスを使用してjQueryドキュメント内の関数を作成することで完璧に動作します。 – Sidou

+0

私は1ヶ月前に 'window.'トリックについて学びました。 jQuery '.ready'の内部と外部で作業するときにはすばらしいです。 – iambriansreed

+0

@sidou [JavaScriptの変数スコープ](http://stackoverflow.com/a/500459/156755)で読んでみてください。 'document.ready'の中にそれを作成する必要は実際にはなく、あなたのコードは通常はより洗練されていて、そうでない場合はメンテナンスが容易です。 – Basic

0
しかし
function closepan() { 
    if($.colorbox) { 
     $.colorbox.close(); 
    } 
} 

、誰かがそのチェックは必要ありませんので、すべての外部スクリプトがロードされている必要がありますあなたのボタンをクリックした時点で...

+0

どちらか我々はjQueryの外でこの関数を作成するので、それは動作しません。ドキュメントを準備してから、$ .colorbox.close()が認識されないか、またはjQueryドキュメントの準備が整った後、そのボタンが私の機能に使用できなくなります。 – Sidou

+0

関数を定義するには、関数内で呼び出されるものはまだ宣言されていなければなりません。それに加えて、 '$'、したがって '$ .colorbox'もdom-readyイベント関数の外部で利用可能です。 – ThiefMaster

0

はあなたの宣言の前にキーワードfunctionを置くことを忘れないでください ...

function closepan() { 
    $.colorbox.close(); 
} 

ワーキングJSFiddle

+0

あなたはそれを手に入れません。まず、私がすでに述べたように、ボタンで呼び出されるclosepan()関数(「javascript:closepan()」のようなもの)を利用しなければならないので、clickイベントを使用することはできません。次に、この関数の唯一の目的は、jQueryプラグインであるcolorbox close callとcolorboxを使用することです.jQuery環境で正常に起動する必要があるため、 'hello world'に警告しないようにする必要があります。 jQueryの前提条件が必要です。 – Sidou

+0

'$' jQuery変数は範囲がグローバルです。ページのどこからでも参照できます。私は要件を読んだのですが、関数ですが、それが問題のメソッドの定義であると仮定しました。私はJSLintを更新し、定義した方法で関数を呼び出し、jQueryを直接参照するか、 'document.ready()'の内部で設定される変数を使用する方法を示します。後者の場合は、リンクされた答えに記載されている閉鎖を選択する。それは私がパネルを実装せずに得ることができるほど近い – Basic

関連する問題