2012-03-20 10 views
1

要素がクリックされたときにdivにページを読み込むjQuery関数があります。このように:外部ページが添付されたjQuery ajaxロードページ

$("#viewID").change(function(){  

      $.ajax({ 
       type: "POST", 
       url:"advOptions_lv.cfm", 
       data: {viewID: $(this).val()}, 
       success: function(data){ 
        $("#dataView").html(data); 

       } 
      }); 


    }); 

私はロードがadvOptions.jsと呼ばれる別の外部ファイルにあるいくつかのJSコードを必要としていますページ。元のページにその外部jsページをロードしようとしましたが、jQueryの呼び出しは機能しません。そこで私はadvOptions_lv.cfmページに追加しました。私がそれをすると、viewID要素がクリックされ、ページが読み込まれるたびに火かき棒で呼び出されます。

私の問題は、advOptions.jsファイルには、このような基本的なajaxフォーム送信機能があります。$.post('saveView.cfm', $("#newDataViewForm").serialize() ,function(data){ });です。これは何度も解雇されています。それは、外部ページが何回ロードされたかによって異なります。

私の質問は、jQuery ajax呼び出しを使用してロードされているページで外部jsページを動作させる最もよい方法ですか?もし私がこれをやっているべきでないなら?

これについての助力は素晴らしいことです。

おかげ

+0

私はそれを理解し終わった。私はまだ外部ページに.jsファイルが読み込まれていますが、jQuery関数を何度も起動する別の問題がありました。 – Sequenzia

答えて

2

これは最初の$.getScriptであなたのJSをロードし、その後、HTMLをロードします。

$("#viewID").change(function(){  
    $.getScript('advOptions.js', function(){ 
     $.ajax({ 
      type: "POST", 
      url:"advOptions_lv.cfm", 
      data: {viewID: $(this).val()}, 
      success: function(data){ 
       $("#dataView").html(data); 
      } 
     }); 
    }); 
}); 
+0

助けてくれてありがとうございますが、これは機能しません。これはjsページをロードしていますが、 'advOptions_lv.cfm'ページにはこれが全くロードされていません。 – Sequenzia

+0

アップ、私の答えを更新、今すぐ動作するはずです。成功関数は、オブジェクトではなく直接渡す必要があります。 – Marc

関連する問題