2016-08-17 6 views
0

私はJSFとスプリングブートで動作します。表示されるコンポーネントにクリックメソッドを動的に追加するxhtmlファイルにjqueryスクリプトがあります。すべてが機能していますが、リンクをコピーしてこのリンクを使って新しいタブを開くと、新しいタブで私のJQueryスクリプトが実行されます。クリックはそこでは機能していません。何が悪いですか?JQueryが新しいタブで動作しない

あなたはこのような $(document).ready();でそれをラップする必要があり
<script> 
       $('#menu\\:notification, #menu\\:notificationGrowlMessageError_container') 
       .on('click', showUserTaskListIfNotificationForUser); 
    </script> 

答えて

1

: '#menu \\:通知、#menu \\:notificationGrowlMessageError_container' 動的に追加されている?それは時にIDが働くことになります

<script> 
    $(document).ready(function() { 
     $('#menu\\:notification, #menu\\:notificationGrowlMessageError_container') 
       .on('click', showUserTaskListIfNotificationForUser); 
    }); 
</script> 
+0

文書の準備が完了したら –

+0

これが機能しています。何故ですか?なぜ最初のページでそれは動作しているが、新しいタブではない?なぜ私は準備が必要ですか?私は説明した後、あなたの答えを受け入れます。 –

+0

これは、スクリプトが実行されたときに最初のページがすでにDOMに存在していたためですが、2番目のページはおそらくDOMに含まれていなかったからです。だから、 'ready()'を使ってDOMが完全にロードされたことを確認してから、Javascriptを実行すれば、すべてのHTML要素が表示されます。 –

関連する問題