0

画像をdivに挿入するコードを実行していますが、画像を読み込んだ後、ユーザーが画像をクリックしてイベントをトリガーできる場合があります。これは奇妙な理由で機能しません。コードは次のとおりです。

 $(function(){
    getPictures('pictures.xml');

    function getPictures(picturesXML){
        $.get(picturesXML, function(data){

            var pictures = data;    
            var countElements = $(pictures).find('pic').length;             

            $(pictures).find('pic').each( function( i ){

                var img = $('<img src="images/' + $(this).attr('src') + '" style="top : ' + $(this).attr('top') + 'px; left: ' + $(this).attr('left') + 'px" width=" '+ $(this).attr('w')  +'"/>');

                    img.load( function(){   
                        $('.space').append( $(this) );
                        $(this, 'space').delay(100*i).fadeIn('fast');   
                    });                                 

            })      

            $('.space img').mouseenter(function(){
                alert('hello');

            })

        })
    }
}) 

私がこれを理解するのを手伝ってくれる人がここにいますか?ありがとう!

4

1 に答える 1

1

通常のjQueryイベント関数は、イベントバブリングをサポートしない傾向があります。$.onメソッドを使用してみてください。この場合、次を置き換えます。

$('.space img').mouseenter(function(){
            alert('hello');

        })

と:

$(document).on('mouseenter','.space img', function(){
            alert('hello');

        });

また、セミコロンが欠落していることに注意してください。これでうまくいくはずです。

于 2013-02-27T23:33:35.060 に答える