-1

私はsocket.io、express、jade、jsdom、jquery、およびmongooseでnodejsを使用しており、サーバーからのsocket.ioイベントを介してクライアント側にロードされているページ要素があります(これは、いくつかのページをスクレイピングしてさまざまなものを取得します)

それはすべて機能し、すべてが正常にロードされますが、jquery で使用する実行時にロードされる要素 (div、リスト、またはテーブルのいずれか [私はすべて試しました]) が必要です。ライブ、バージョン 1.9 で削除されました。そこで、次のことを試しました...

$('.vid_item').on('mouseover', function(event) {
    if (event.type == 'mouseover') {
        alert('Yay, mouse-over on the loaded element');
    } else {
        // do something on mouseout
    }
});

テストとして、ヒスイのレイアウトに '.vid_item' div があり、ページの残りの部分と一緒にロードされ、マウス オーバー イベントはその要素で完全に機能しますが、サーバーが戻った後にロードされたアイテムはまだ機能しません。そのデータを使用して socket.io イベントを発生させ、ページに項目を追加します。

何か不足していますか?必要に応じて、プロジェクトから他のコードを提供できます。

事前に乾杯!

4

1 に答える 1

0

次のように使用します。

 $(document.body).on('mouseover', '.vid_item', function(event) {

jQuery セットはイベントを受け取り、引数として指定されたセレクターに一致する要素にそれを委譲します。これは、 を使用する場合とは逆にlive、コードを実行するときに jQuery セット要素が存在する必要があることを意味します。document.body は、バインディングを行うときに存在し、'.vid_item'要素が含まれる任意の要素に置き換えることができます。

于 2013-06-30T18:36:35.557 に答える