2011-12-16 1 views
2

私はJQuery Selectorを持っていて、イベントはそれに関連付けられています。私はそれを外部ファイルに保存し、そのままコピーして保存したいと思います。私が見ることは、セレクタを持つ外部JavaScriptが動作しないことです。なぜ誰かが説明できますか?外部ファイルのセレクタでJQueryスクリプトを分離できないのですか?

注:HTMLファイル内で同じ機能を使用することはできますが、外部化する際には使用できます。それだけでは機能しません。次のように私が持っている スクリプトは次のとおりです。 - どのようにあなたは、このスクリプトを含めている

$('#pervious').click(function() { 
     var presentSlide = $('.visible').attr('id'); 
     var tempArr = presentSlide.split("-"); 
     var persentSlideNo = tempArr[1]; 
     var perviousSlideNo = Number(persentSlideNo) - 1; if (perviousSlideNo > -1) 
     { 
     var perviousSlide = "Slide-" + perviousSlideNo; 

      $('#' + presentSlide).fadeOut('slow',function(){ 
      $(this).removeClass('visible').addClass('hidden'); 
      }); 
      $('#' + perviousSlide).fadeIn('slow',function(){ 
      $(this).removeClass('hidden').addClass('visible'); 
      }); 
     } 

    }); 
+0

同じスクリプトは 'function perviousSlide()によって置き換えられます。 { \t var presentSlide = $( 'visible')。attr( 'id'); var tempArr = presentSlide.split( " - "); var persentSlideNo = tempArr [1]; var perviousSlideNo = Number(persentSlideNo) - 1; //最後のスライドがif条件に入るようにします。 /Some Code Here/ } } '私はonClickイベントで正しいことを教えてくれます。だから、上記の問題が何であるか教えてください。 –

+0

'alert( 'hello');'を入力すると、外部スクリプトの先頭にポップアップしますか?それは正しくリンクされていますか? – karim79

答えて

3

id=pervious要素の定義の下に移動する必要があります。または、後に移動する必要があります(例:document.ready)。そうでない場合、要素は存在せず、バインドするものはありません。修正再表示するには

UPDATE、それはpervious要素が作成された後に実行する必要があります。それを外部の文書に置くと、pervious HTML要素が作成される前に実行される可能性が高いため、動作しません。外部ファイルに入れることができます。要素がロードされることを確実にしてください。あなたが実際に警告を行うことによって、それにリンクされて決定された後

$(document).ready(function() { 
    $.getScript('http://yoursite.com/extrascript.js'); 
}); 
+0

私はそれを1つの外部javaScriptに入れました。 Document.Readyの外側にあります。 –

+0

http://jsfiddle.net/shivkumarganesh/YTpJ2/39/これは私がdocument.readyに入れた例です。うまくいきます。これをより良く理解するための文書を入手できますか? –

+0

以前はDocument.Ready以外のものを書いていました!私が参照できるようにオンラインにあるドキュメントがあれば教えてください。 –

2

、そのようなあなたのコードをラップ:

ドキュメントの準備が整う前に、あなたの選択を実行しているやっている
$(function(){ 
    // place your code inside here for ready event 
}); 

。セレクタはdomがそこに来る前に実行され、セレクタに結果がないので、何も付かない。 (のような閉鎖タグを含む)

<script src="myexternal.js" type="text/javascript"></script> 

ないこれらのいずれか:

+0

で更新されました。 "pervious"は "previous"です。変態する傾向: –

+0

haha​​私はperviousに関して同意します:P笑 –

+0

...そしてそれはそれを解決しました。 – marw

2

あなたはのフォームでスクリプトを含める必要が

<script src="myexternal.js" type="text/javascript" /> 
<script src="myexternal.js" /> 
<script src="myexternal.js" ></script> 

フォームまたはそれが常に適切にレンダリングされ得ることはありません実行されません。

もちろん、jQueryを使用しているので、あなたのコードをjQueryライブラリのリンクの後に置いて、あなたのコードを他の人が実証したようにドキュメントに組み込むべきです。

+0

はい、これは常に秘密の問題です!これはおかげさまです。 – gideon

関連する問題