1

私はjquery / javascriptが初めてです。アイテムを追加する関数 A は動作するが、関数 A が呼び出された後、関数 B が動作しなくなることに気付きました。関数 A に関数 B を再インクルードすることでこれを回避できますが、それは洗練されていないと思います。確かに、別の方法がありますか?私はすでに $document.ready() を追加しようとしましたが、これはそれに含まれているので、単にループしていると思いますか?

これは私がこれまでに持っているものです:

<script type="text/javascript" charset="utf-8">
  $(document).ready( function () {

    //Function A
    $('a#create').click( function() {
      $("#existing").append('<option value="'+portName+'">'+portName+'</option>').multiselect("refresh");
      //multiselect is a plug-in that makes select option tags nicer to look at, on refresh the html is correctly parsed for Function B to continue working, however it does not work unless I re-call Function B here. Again calling $document.ready() here doesn't work either.
    });

    // Function B
    $('a.view').click( function() {
      alert();
    });
  });
</script>

関数 B がアンカー リンクで呼び出していることは理解していますが、関数 A は関数 B が機能するためのこれらの条件を適切に作成しています。通常のドキュメント ロードでは、これは問題になりません。ただし、関数 A を呼び出した後、関数 A に関数 B を含めない限り、関数 B は壊れます。

他のすべての関数を呼び出して「リフレッシュ」する関数の作成を検討する必要がありますか? 今のところ問題が何であるかさえわかりません。私はこの「修正」に出くわしました。

4

1 に答える 1

2

あなたが何をしたいのか理解できたかどうかはわかりませんが、あなたが探しているのは次のとおりです。

<script type="text/javascript" charset="utf-8">
  $(document).ready( function () {

    //Function A
    $('a#create').click( function() {

    });

    // Function B, event delegation
    $('body').on('click', 'a.view', function() {
      alert();
    });
  });
</script>
于 2013-09-05T20:51:24.840 に答える