2012-02-09 14 views
0

マークアップがあります。この部分はajaxを介してロードされ、div内に追加されています。ファイルuser-bar.phpjQueryイベントがトリガーされていません

内容:<script type="text/javascript" src="js/scripts.js"></script>

$(function(){ 
    loadUserBar(); 

    $('#notifications-list').live('click', function(){ 
     console.log('Test'); 
     $('#notifications-list .icon-comment').removeClass('new'); 
    }); 
}); 

function loadUserBar(){ 
    $('#user-area').load('php/user-bar.php', function(){ 
     initBootstrapElems(); //Initializing All popover elements 
    });  
} 

index.phpファイルとしてindex.phpファイルに含まれている以下のよう

<div id="u-bar"> 
    <ul id="u-nav" class="nav"> 
     <li id="notifications-list" class="dropdown" data-time="" > 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
      <i class="icon-comment"></i> 
      Notifications 
      <b class="caret"></b> 
      </a> 
      <ul class="dropdown-menu" > 
       <li><a href="#">Notification One</a></li> 
       <li><a href="#">Notification two</a></li> 
       <li class="divider"></li> 
       <li><a href="#">Show All Notifications</a></li> 
      </ul> 
     </li> 
     <li class="dropdown"> 
     <a href="#" class="dropdown-toggle" data-toggle="dropdown"> 
      <i class="icon-user"></i> 
      Profile 
      <b class="caret"></b> 
     </a> 
     <ul class="dropdown-menu"> 
      <li><a href="#">View Profile</a></li> 
      <li><a href="#">Settings</a></li> 
     </ul> 
    </li> 
    <li><a href="php/logout.php">Logout</a></li> 
    <div class="clear"></div> 
    </ul> 
</div> 

私はscripts.jsファイルをしたが、AJAXは、マークアップがある返さdiv#user-areaを持っています挿入された。

ページ全体が読み込まれた後、リストアイテム#notifications-listをクリックすると、何も起こりません。しかし、$('#notifications-list').click()をコンソールに直接入力すると、ログが表示され、removeClassが発生します。

ここで間違っていますか?

+0

あなたはAJAX呼び出しのコールバックでこのjqueryのコードを入れていましたか? –

+0

いいえ。jqueryコードはメインページにあります。コールバックを入れるにはどうしたらいいですか? – ptamzz

+0

jQueryスクリプトをajaxで返されたマークアップに 'li'アイテムとともに入れましたが、それでも同じ問題です。 – ptamzz

答えて

1

そうだね、http://jsbin.com/ijiqec/2/editでシミュレートドロップダウンブートストラップとの競合が(あります)。何らかの理由で

問題を修正しに でライブの使用を変更する(なぜ私に聞かないでください)。 使用して、コードのこの作品:

$('#notifications-list').on('click',...

+0

ありがとうございました。できます。しかし、私は 'user-bar.php'ファイルにjsスクリプトを入れなければなりませんでした。 – ptamzz

1

タグイベントにクリックするハンドラを配置してみます。

$('#notifications-list a').live('click', function(){ ... }) 

更新: すべてのliタグに同じIDを使用することはできません。 あなたは、各タグと上のJSを更新することを持っている場合は、クラスに李を変更するには#通知リストが必要になります。

$('.notifications-list a').live('click', function(){ ... }) 
+0

私はそれを試みました、それでも同じ問題。 – ptamzz

関連する問題