0
$(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>
4

1 回答 1

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()以允许冒泡。

于 2013-10-17T21:32:42.890 回答