jquery内部ドメインアクセスとそのメソッドの名前の問題

1641 ワード

まず、JS関数を定義すると、使用できない場合は、2つの可能性しかありません.
1つ目は、JSPページの導入エラー、導入順序の問題です.
2つ目は、役割ドメインに問題が発生したことです.
 
また、あなたが書いたJSがいつロードされるか知っています.
 <script>

      function testAli1(){  alert("testAli1");  }
      var chen = {};
      $(document).ready(function(){

           function testAli2(){  alert("testAli2"); }

           chen.testAli3=function(){  alert("testAli3"); };

       }); 

   </script>

testAli 1()このメソッドは、ドキュメントのロード中にロードされます.つまり、ドキュメントが上から下へ実行され、実行されるまでの時間が自動的にロードされます.
readyメソッドに書くと、ドキュメントがすべてロードされた後、これらのものをロードします.
だから中に書いてある安全性はもっと高いです.
しかし、新しい問題を引き起こすに違いありません.testAli 1()この方法はグローバルな方法で、どこで呼び出してもいいです.
testAli 2()このメソッドは絶対的な内部メソッドであり、readyというメソッドでのみ呼び出すことができ、他の場所で呼び出すことは不可能です.
この中のメソッドをどこでも呼び出すには、このようなネーミングスペースのようなものを加え、後のtestAli 3()メソッドを加えると呼び出すことができます.
はい、呼び出しのルールはchenです.testAli3().もしあなたがこのように書くのが面倒だと感じたら、直接中にwindowを書くことができます.testAli 3()は、実際には全体的なものであることを示しています.
例:
(1)テスト1(2)テスト2(3)测试3(1)能正常呼出的(2)testAli 2 not defined(3)正常呼出的两者情况也不行,结果只有最后一个情况.名字的冲突改变名字空间和方法,试试一下.非常重要.所以JS中无法实行的问题是,你写了罗德顺序的错误。这一点都能提出一些测试,非常重要.另外,可以呼吁内部角色门内的牌子.附带:使用Jquery的时候不能避免ready相关数的使用,实际上这个ready相关数的作用不仅是在纪录片的罗德结束后再进行相应的js史克里普特的罗德,在js史克里普特使用之前,几个要素都保证存在HTML纪录片(避免报告几个艾勒).实际上ready相关数的另一个作用,实际上ready相关数无形形成内部导弹,这个内部导弹相关数的对外看不到。但是,在ready角色导演中定义的关数从外面呼吁,如此設定すればよい.           window.funname=function(){ //do something  };