2009-05-12 5 views
2

AJAXを使用してコンテンツを含むdivをロードするシステムがあります。すべてはうまく、私はデータベースから詳細を完全にロードするdivを得ることができ、それは素晴らしい作品です。返されたdiv要素内返されたAJAXコンテンツの中でユーザー定義のJS関数を呼び出す

、私はonClickイベントとボタンのカップルを持っている:

問題は、このです。 onClickイベントは、ユーザー定義関数onClick="my_function();"を呼び出そうとするとエラーが発生しますが、onClickイベントはJS定義関数onClick="alert('success');"を呼び出すとエラーになりません。

これはなぜでしょうか? my_function()はマイページの先頭に定義されています。しかし、私はAJAXによって返されたコンテンツにも定義しようとしましたが、まだ運がありません。あなたはプロトタイプ、jqueryの、など。(任意のJSフレームワーク)を使用している場合

すべてのヘルプは大幅に

+0

onclickとjavascript関数 –

+0

とのリンクを投稿してください、申し訳ありませんが、私はあなたにアクセス権を与えることができない内部システムの中にあります。 –

答えて

0

を理解されるであろう、あなたがtrueにPARAM「evalJS」を設定していることを確認する必要があります。この最後の例は私が試作したものです。

プロトタイプ

+0

私はプロトタイプやjqueryなど、基本的なjs関数を使用していません。 –

0

あなたは、実際の要素にonclickのハンドラの代わりにJavaScriptでのイベントハンドラを追加してみてください可能性のチェックhere

次に、匿名関数を使用できます。

+0

クール..私に例を挙げてもらえますか? –

+0

さて、私はjQueryをたくさん使っていますので、$( 'selector')を実行します。bind( 'click'、function(){//これはanon関数です)); – alex

+0

これで何か違うものになると思いますか? onclick = "alert( 'success');" AJAXによって読み込まれたコンテンツの内部で動作します。 –

0

DIV要素のinnerHTMLをAJAXリクエストの結果で単純に更新する場合は、ブラウザがHTML以外のスクリプトのみを解析することに注意してください。

JavaScriptエラーが発生している可能性があります。

スクリプトを解析するには、ライブラリのドキュメントを参照する必要があります。たとえば、ASP.NETを使用している場合は、ScriptManager.RegisterClientScriptBlockを呼び出して、AJAXクライアントコンポーネントに結果内のスクリプトを解析させることができます。

一方、あなたが手で行っている場合(私がしばらく前にしたことの1つ)、スクリプトを自分で検出して解析する必要があります。

+0

こんにちはPaulo、私はスクリプトを渡すつもりはない、onclickイベントの関数呼び出しでhtmlのみ。スクリプトはオリジナルページの先頭に定義されています。 –

0

OK、ここに簡単な答えです。ボタンの要素名とIDは、呼び出しようとしていた機能と同じです。愚かな間違い私は知っています。 、私は私のAjaxは一度しか発動...それは最初の時間を素晴らしい作品が、その後の機能が動作しません...別の問題を持っているここ

は私のコードです:

function delete_account(account_id) { 
    create_request(); 
    var url = "accounts_ajax.php?action=delete_account&account_id=" + account_id; 

    show_div('action_window'); 

    document.getElementById('action_window').innerHTML = '<div class="please_wait"><img src="images/working.gif"><br>Loading...</div>'; 

    xmlHttp.open("GET", url, true); 
    xmlHttp.onreadystatechange = function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){reload_div('action_window', xmlHttp.responseText);}}; 
    xmlHttp.send(null); 
    } 

はそれだけで原因エラーは2回目です。

関連する問題