jQuery单击处理程序不起作用

时间:2013-02-10 02:20:42

标签: javascript jquery html onclick

我无法使用以下功能。

单击.image类时,将替换3个div(gallerytext,image和thumbset)中的内容。我一直试图让它工作几天,我无法弄清楚我做错了什么。

我的代码:

     // Init load 
  $(document).ready(function() {
        var $doc = $(document.body);


        var text = $('#gallerytext1').html();  //blank divs are filled with content on page load 
        $('#gallerytext').html(text);
        var thumbset = $('#thumbset1').html();
        $('#thumbset').html(thumbset);  
        $('#image').html('<img src="images/edwards1.jpg" border="0"/>');


    //click handler
       $doc.on("click",".image",function(){

        var image=$(".image").attr("rel"); 
        var imid=$(".image").attr("data");
        var text=$('#gallerytext'+imid).html();
        var thumbset=('#thumbset'+imid).html();

        $('#debug').html(imid);

        $('#gallerytext').fadeIn('slow');
        $('#gallerytext').html(text);
        $('#thumbset').fadeIn('slow');
        $('#thumbset').html(thumbset);
        $('#image').hide();                 
        $('#image').fadeIn('slow');
        $('#image').html('<img src="' + image + '"/>');
        return false;


      });
  });

初始内容加载得很好,但我无法让点击处理程序工作。具有.image类的对象的格式如下:

<a href="#" rel="images/edwards2.jpg" data="1" class="image image2"><img src="images/edwardsthumb2.jpg" class="thumb" border="0"/></a>

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

这些可能是你的问题:

var image=$(".image").attr("rel"); 
var imid=$(".image").attr("data");

$(".image")选择所有的元素image。您只想要点击的那个,因此请使用this来引用它:

var image = $(this).attr("rel"); 
var imid = $(this).attr("data");

另外,请不要像data那样制作自定义属性。 HTML5引入了data-属性,用于存储自定义数据类型,因此请使用它们:

data-number="1"

您可以使用.data()方法访问它:

var imid = $(this).data('number');