0

画像スライダーを作っています。私はajaxを使用してすべての画像をロードしています。画像のクリックイベントを書きたいのですが、ajaxでロードされているため、動作していません。

            $.ajax({
                type: "GET",
                url: "photos.xml",
                dataType: "xml",
                success: function(xml) {
                    $(xml).find('item').each(function(){
                        var path = $(this).attr('path');
                        var width = $(this).attr('width');
                        var height = $(this).attr('height');
                        var id = $(this).attr('id');
                        var alt = $(this).attr('alt');
                        var longdesc = $(this).find('longdesc').text();
                        var description = $(this).find('desc').text();
                        $('#myImageFlow').prepend('<img src="'+path+'" id='+id+'  height="'+height+'"  width="'+ width+'" longdesc="'+longdesc+'" alt="'+alt+'"/>');
                        imgArr[i] = description;
                        i = i+1;

                    });
                }
            }).done(function() {





      /* ===================================== */
      //$("#myImageFlow").show();

      // $("#myImageFlow img").photoSwipe({ enableMouseWheel: false , enableKeyboard: false });


                        $('img:lt(3)').addClass('t1');
                        $('img:gt(3)').addClass('t2');



                    });

      $.getScript('js/iSlider.js');
      $.getScript('js/code.photoswipe.jquery-3.0.5.js');


 });


 $('img').click( function() {

    alert("image clicked");     
   }

使ってみた、

$('img').live('load', function() {

しかし、それは機能していません。画像がクリックされるたびにCSSメソッドを適用したい。クリック イベントは、Ajax 関数がなくても正常に機能します。

4

3 に答える 3

4

次のように.on()を使用できます。

$('body').on('click','img',function(){
    //do something..
});

imgの likeに近いコンテナにもバインドできますdiv。また.live()、JQuery の最新バージョンでは既に非推奨になっています。

于 2013-05-16T08:00:17.583 に答える
0
$('#myImageFlow').on("click", 'img',  function() {

    alert("image clicked");     
   });
于 2013-05-16T08:00:33.513 に答える