2011-12-18 15 views
0

私はポップアップダイアログボックスを持っています。私はできる限り動的にしようとしていますので、私が望む任意の関数を送ることができます。私はコールバック関数を作成したいので、必要な関数を渡すことができます。オブジェクトに必要なものはすべて実行します(この例では、テスト用に何かを出力します)。javascriptのパラメータとして関数を渡すには

ここでは、呼ばれる:

​​3210

そしてここにポップアップ機能を活性化させる機能です

$('.delete').click(function(){ 
    var obj="something something"; 
    DisplayPopUp(obj,function(){console.log('going to delete');}); 
}); 

どういうわけか、このエラーをそれが動作しないと私は放火犯からの取得:

Obj is not defined 

明らかに私の機能は正しく移行されません - どうすればいいですか?

+0

「Obj」を大文字と小文字を混在させたタイプミスですか? – Li0liQ

+1

[this](http://stackoverflow.com/questions/8508266/does-c-support-member-function-references)の大文字の誤植と下落の実際のアップボントです。愚かなサイト! –

答えて

2

callback(Obj)を呼び出していますが、変数名はobjです。あなたのケースを確認してください。

1

DisplayPopup()でコールバックを呼び出すときは、ではなく、objのパラメータを渡します。

1

まあ、Objは、であり、ではありません。それはobjである必要があります。

エラーメッセージが表示されたときにまず行うべきことは、それを読むことです。 :)

1

私はこのコードで複数の潜在的な問題を参照してください。

まず、Objの場合は間違っています。

しかし、私はあなたが適切にイベントハンドラを使用しているとは思わない。クリックハンドラからDisplayPopupを呼び出しています。しかし、そのクリックハンドラでは、別のクリックハンドラを別のオブジェクトにインストールしています。それは本当にあなたがしたいことですか? actionButtonを作成/破棄するか、クリックハンドラをバインド解除するコードをここに残さない限り、deleteボタンをクリックするたびに#actionButtonで複数のクリックハンドラを簡単に終了できます。

+0

ハンドラはさまざまな要素に基づいています...私が推測しなければならないのなら、彼は「あなたは確かですか?ボックス。 –

+0

私はそれらが異なる要素にあることを知っています。しかし、 '' .delete''を複数回クリックすることができると仮定すると、呼び出されるたびに新しいハンドラが添付されるので、 '#actionButton'で複数のクリックハンドラが終了します。これはコードの残りの部分によって処理される可能性がありますが、私たちはそれを見ることができないので、可能性のある問題として言及する必要があると思いました。 – jfriend00

+0

私は先に進んで、 '#actionButton'が' DisplayPopUp'のギャップに作成されたと仮定します。 –

関連する問題