2016-12-15 5 views
-2

jQueryとWeb開発を学ぶ初心者ですが、これは疑問のような質問かもしれませんが、Googleでこれを見つけることはできません適切なキーワードの場合)。私は単純なHTMLファイル(たとえば、 'test.html'というjQueryを読み込み、外部のjavascriptファイル(test.jsなど)を書き込んで、その中にボタンを持っているとします(例:別のファイルに含まれているとjQueryのクリックが機能しない

Javascriptを

$(document).ready(function() { 
    $('#summary_employee').click(function (event) { 
     dataString = $("#summary_employee").serialize(); 
     $.ajax({ 
      type:"POST", 
      url:"<?php echo base_url(); ?>hodm_summary/search_by_employee", 
      data:dataString, 

      success:function (data) { 
       $('#search').html(data); 
      } 

     }); 
     event.preventDefault(); 
    }); 
}); 

しかし、私はボタンをクリックしたときに、それは動作しません。しかし、私は「test.htmlという」で「test.js」コードに何入れたときに、それが仕事。

解答を手伝ってください。

+0

'body 'のクローズの前に' 'を入力してください – Mairaj

+0

クリックしてコンソールをチェックしましたか? –

+1

正しいファイルを置いていますか?コンソールにエラーがありますか? –

答えて

0

Becau HTMLタグがDOMにロードされる前にクリックのバインドが行われます。 DOMがロードされた後でテストjsファイルを置いてから、あなたのクリックは正しくバインドされます。それはPHPだから

<html> 
<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

</head> 
    <body> 
    <ul class="nav nav-tabs"> 
       <li role="presentation"><a href="" id="summary_employee">Search by Name</a></li> 
       </ul> 
     <script src="scripts/test.js" type="text/javascript"></script> 
    </body> 
    </html> 

または他の使用イベント委任

$(document).on('click', '#summary_employee', function (event) { 
    event.preventDefault(); 
    //Paste your code 
}); 
+0

これは動作していません – xr33dx

+0

私はイベントの委任を試みました。ページのみを更新する – xr33dx

+0

いいえ、それは動作しません – xr33dx

0

あなたはtest.jsファイルで<?php echo base_url(); ?>を使用することはできません

function getBaseUrl() { 
    pathArray = location.href.split('/'); 
    protocol = pathArray[0]; 
    host = pathArray[2]; 
    return protocol + '//' + host; 
} 

$(document).ready(function() { 
    $('#summary_employee').click(function (event) { 
     dataString = $("#summary_employee").serialize(); 
     $.ajax({ 
      type:"POST", 
      url: getBaseUrl() + "/hodm_summary/search_by_employee", 
      data:dataString, 

      success:function (data) { 
       $('#search').html(data); 
      } 

     }); 
     event.preventDefault(); 
    }); 
}); 

あなたtest.jsにこのコードを試してみてくださいスクリプト。

関連する問題