4

さて、私はこれに対する答えを数時間探していましたが、うまくいくものは何も見つかりませんでした。

.clickイベントの後にdiv内にロードするページがあるので、次のようになります。

$('#mybutton').click( function () { $('#mydiv').load('myinnerpage.aspx'); });

次に、myinnerpage.js内に次のものがあります。

$(document).on('change', 'input[name=rbfileByNameOrID]:radio', function () {
if ($('input#rbByFileName').attr('checked'))
    fileSelectionBy('filename');
else
    fileSelectionBy('fileid'); 
});

myinnerpage.aspxを単独で開かない限り、change関数が実行されることはありません。

4

4 に答える 4

2

含まれているページではなく、メインの JavaScript に myinnerpage.js コードを配置できますか?

あなたができない場合、私は「良い解決策」ではありませんが、これはあなたを助けることができます.ajaxでページをロードしたときにjQueryMobile-Navigationに同じ問題があり、jquery以外のソリューションを使用して解決しました。$.ajax->success では、 innerHTML を使用します。

[...]

//workaround to allow scripts to execute when included in page divs
all.get( 0 ).innerHTML = html;

[...]

完全なコードはこちらで確認できます。

ページ div に含まれるscript-tagと inline-javascriptで動作します。

于 2012-04-30T16:39:27.867 に答える
1

イベントを手動で起動してみてください。

$('#mybutton').click( function () { 
  $('#mydiv').load('myinnerpage.aspx', function(){
      $('input[name=rbfileByNameOrID]:radio').trigger('change')
   }); 
});
于 2012-04-30T16:22:06.583 に答える
1
$('input#rbByFileName').trigger('change');

また:

$('input#rbByFileName').change();

$('#mybutton').click( function () { 
  $('#mydiv').load('myinnerpage.aspx', function(){
      $('input#rbByFileName').change();
  }); 
});
于 2012-04-30T16:31:09.367 に答える
0

ここでの問題は、.loadが実行されると、の内容がmyinnerpage.aspx(全体として)に配置されること#mydivです。すべて<script>のタグが実行されますが、それらは現在のページのパスからのものであるため、ファイルパスを確認する必要がある場合があります。

../現在のページとロードされたページで同じではない可能性があるため、相対パスではなく絶対パスを使用するようにスクリプトを変更する必要がある場合があります。

于 2012-04-30T18:07:08.273 に答える