2016-06-23 9 views
0

AJAX経由でページを読み込んだ後にJavaScriptファイルを読み込む方法を知りたいですか? 問題は次のとおりです: 私は、トラックに関する情報をJSファイルで提供する音楽プレーヤーを持っています。 その後、すべてのページを読み込み、うまく動作します。しかし、私がAJAX経由で別のページを読み込むと、私のスクリプトは私が呼び出したページでは動作しません。AJAXとJavaScriptスクリプトローダー

function showContent(link,link2) { 
    var cont = document.getElementById('content'); 
    var loading = document.getElementById('loading'); 
    window.history.replaceState('', 'Title', link2); 
    var http = createRequestObject();     
    if(http) { 
     http.open('get', link);       
     http.onreadystatechange = function() {   

      if(http.readyState == 4) { 

       cont.innerHTML = http.responseText;  
      } 
     } 
     http.send(null);  
    } else { 
     document.location = link; 
    } 
} 
function createRequestObject() { 
    try { return new XMLHttpRequest() } 
    catch(e) { 
     try { return new ActiveXObject('Msxml2.XMLHTTP') } 
     catch(e) { 
      try { return new ActiveXObject('Microsoft.XMLHTTP') } 
      catch(e) { return null; } 
     } 
    } 
} 

それから私は、プレイヤーが生き作るために、角-soundmanager2.jsを使用します。

コードは次のようになります。 そして、私はこのページそれは私のプレイリストを表示しなければならない

<h5>Songs</h5> 
      <ul> 
       <li ng-repeat="song in songs"> 

        <button music-player="play" add-song="song">{{ song.title }}</button> 
        <button music-player add-song="song">+</button> 
       </li> 
      </ul> 

      <button play-all="songs">Play all</button> 
      <button play-all="songs" data-play="false">Add all</button> 

にリンクした後にロードページでは動作しませんコードのこのカット。しかし、私は何も得られません。

+0

'id'の代わりに' class'を使うようにしてください... 'id'がユニークであることを覚えておいてください。もしあなたがajaxでコンテンツを読み込んでいるならば、イベントを' on'でバインドするべきです。 .. – Hackerman

答えて

0

DOM要素をjavascriptでバインドする必要があります。ドキュメントの準備ができたら、$( '#someDiv')。makePlayer()のようなものを呼び出します。したがって、ページの読み込みは正常に動作します。しかし、あなたがajaxを作ったとき、あなたはajaxでそのページの内容を置き換えていると思います。以前にmakeplayer()を呼び出したDOM要素を再度削除して読み込んでいる場合。 ajax呼び出しの後にmakePlayerを再度呼び出さなければなりません。

+0

私はこれを行います。しかし、これは何も返しません。 –