JQuery:单击“类反应”

时间:2013-10-17 21:25:48

标签: javascript jquery

$(document).ready(function() {

// ............. Your jQuery Code goes here .............

    //var myArray1 = new Array( "img1", "img2" , "img3",  "img4");
    var numImg = $('#thumbNail img').length; //number of images
    var num = 0;
    var curImg = 0;


    //Prevent Image Dragging
    $("img").bind('contextmenu', function(e) {
        return false;
    }); 



    //Prevent Right Click on Mouse
    $("img").bind("mousedown", function(e){
        return false;
    });



    $(".leftThumbNail").live("click", function(){ 
        alert("HY"); 
    });


});

我试图让它在我点击“leftThumbnail”类中的图像时做出反应。该类在左侧面板上包含2个图像。每当我点击该课程中的任何图像时,似乎都没有发生。

我也尝试过:

$(".leftThumbNail").click(function() {

        alert("HEY");

    });

在我的“leftThumbNail”课程中,我有以下内容:

<div class="leftThumbNail">   

<img id = "img1" src="img/thumb/image1.jpg" class = "image1Position" alt="Image 1">

<img id = "img2" src="img/thumb/image2.jpg" class = "image2Position" alt="Image 2" >

</div>

1 个答案:

答案 0 :(得分:2)

好的,试试这个:

$('img').on({
    contextmenu:function(e) {
        e.preventDefault();
    },
    click:function(e){
        if(e.which === 3){
            e.preventDefault();
        }
    },
    dragstart:function(e){
        e.preventDefault();
    }
}); 

$(".leftThumbNail").on('click', function(){ 
    alert('HY'); 
});

执行以下操作:

  • 通过选中e.which特定于右键单击
  • 来杀死鼠标右键
  • 更新.on(),您想要做的现代版
  • 'img'的处理程序合并为一个.on()声明

进一步巩固它:

$('img').on({
    contextmenu:function(e) {
        e.preventDefault();
    },
    click:function(e){
        if(e.which === 3){
            e.preventDefault();
        } else if($(this).hasClass('leftThumbNail')){
            alert('HY');
        }
    },
    dragstart:function(e){
        e.preventDefault();
    }
}); 

不再需要额外的处理程序......现在只需处理一个!

编辑修改为包含预防拖动(使用dragstart处理程序执行)。同时将return false更改为更合适的e.preventDefault()以允许冒泡。