使用jquery取消单击事件上的现有图像

时间:2013-08-30 14:13:33

标签: javascript jquery dom javascript-events

在实际网站中,点击缩略图中的图片时,会打开幻灯片。

我创建了一个新的onclick事件

$('.thumbnails a').click(function(event) {

    //my piece of code

});

如何取消现有的点击事件,不知道哪个选择器被用来触发事件(父?儿童?特定类?

我尝试过这样的事情:

event.stopPropagation()

$(this).stop()

没有成功

RE-EDIT -------------------------------------------- ------------

html以:

开头
   <div class="images">


    <a title="Voyage itinérant en Boutre" rel="prettyPhoto[product-gallery]" class="zoom" href="http://dev.snorkeling-voyages.com/wp-content/uploads/2013/05/snorkeling-madagascar-001_alefa.jpg" itemprop="image">
    <img width="462" height="392" class="yit-image attachment-shop_single" src="http://dev.snorkeling-voyages.com/wp-content/uploads/2013/05/snorkeling-madagascar-001_alefa-462x392.jpg">
    </a>


    <div class="thumbnails nomagnifier">

    <a class="zoom first" rel="prettyPhoto[product-gallery]" title="bateau itinerant madagascar" href="http://dev.snorkeling-voyages.com/wp-content/uploads/2013/05/snorkeling-madagascar-002_alefa.jpg">
    <img width="100" height="80" class="yit-image attachment-shop_thumbnail" src="http://dev.snorkeling-voyages.com/wp-content/uploads/2013/05/snorkeling-madagascar-002_alefa-100x80.jpg"></a> 

jquery更改缩略图上的精选图像点击

  $('.thumbnails a').click(function(event) {

    var destination= $('.images >a');
    destination.empty();
    $(this).prependTo(".images >a");

    $('.images a a img').attr('width','470');
    $('.images a a img').attr('height','392');      
    //replace src string
    var src=($('.images img').attr('src'));     
     var pattern = /[100x80]/;
     if(pattern.test(src))
            src=src.replace("100x80", "462x392");

     $('.images a a img').attr('src',src);           
     $('.images a a img').attr('class','yit-image attachment-shop_single');

});

@bfavaretto评论帮助我本地化了现有的.zoom点击事件(非常有用,谢谢) (我怎么知道js文件?)

我添加了

     $('.zoom a').click(function(event) {
    return false ;
           // or  event.preventDefault();
});

这并不能阻止滑块被打开!

5 个答案:

答案 0 :(得分:2)

您可以使用 .preventDefault() 来阻止链接执行:

event.preventDefault();

jsFiddle here

答案 1 :(得分:2)

您可以使用.off删除所有其他点击处理程序:

$('.thumbnails a').off('click');

如果委托了该事件,您需要这样的事情:

$(document).off('click', '.thumbnails a');

但是,您必须从点击处理程序外部执行此操作,否则可能为时已晚。

答案 2 :(得分:1)

您可以尝试使用两个注释语句中的任何一个:

$('a').click(function(e){
//e.preventDefault();

//return false;
});

答案 3 :(得分:1)

我做了别的事情如果我理解你想要的东西请看看

<a href="http://www.google.com">off</a>
<a href="http://www.google.com">off</a>
<a href="http://www.google.com">off</a>
<a href="http://www.google.com">off</a>

和javascript:

$('a').click(function(event){
    event.preventDefault();
    if ($(this).attr('data-status') == 'on') {
        $(this).attr('data-status','off');
        $(this).html('off');
        return;
    }

    var areOn = 0;
    $('a').each(function(){
        if ($(this).attr('data-status') == 'on') {
            areOn++;
        }
    })

    if (areOn == 0) { 
        $(this).attr('data-status','on');
        $(this).html('on');
    }
})

http://jsfiddle.net/ERMtg/9/

答案 4 :(得分:0)

您可以使用return false,我认为这样做

$('.thumbnails a').click(function(event) {
    return false;
});