Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 取消绑定并重新绑定单击_Jquery_Image_Click_Bind_Unbind - Fatal编程技术网

Jquery 取消绑定并重新绑定单击

Jquery 取消绑定并重新绑定单击,jquery,image,click,bind,unbind,Jquery,Image,Click,Bind,Unbind,我有以下代码: $('#maincontent img').click(function(){ console.log($(this).attr('src')); $myFile = $(this).attr('src'); /*$('#gallery').css('height',0);*/ $('#gallery').html('<img src="'+$myFile+'" />'); $('#gallery').fadeIn();

我有以下代码:

$('#maincontent img').click(function(){
    console.log($(this).attr('src'));
    $myFile = $(this).attr('src');
    /*$('#gallery').css('height',0);*/
    $('#gallery').html('<img src="'+$myFile+'" />');
    $('#gallery').fadeIn();
        $('#gallery').click(function(){
            $('#gallery').fadeOut();
                 $('#maincontent img').unbind('click');
                 $('#maincontent img').click(function(){
                      $myFile = $(this).attr('src');
                      $('#gallery').append('<img src="'+$myFile+'" />');
                      $('#gallery img').last().css('display','none').fadeIn();
这样,我可以在将鼠标悬停在
$(“#maincontent img')
上后再次单击
#maincontent img
。但我很难得到任何回应。我想我只是不知道它需要什么行动才能重新绑定。谢谢


#maincontent
是一个div,其中加载了一个外部页面,并包含一些图像缩略图
#gallery
是另一个从
#maincontent
加载图像的div。这是一个站点:

看起来您基本上已经在其内部嵌套了相同的代码块。我想把它分解成一个函数。i、 e

var clickEvent = function () {
        $('#gallery').fadeOut();
             $('#maincontent img').unbind('click');
             $('#maincontent img').click(function(){
                  $myFile = $(this).attr('src');
                  $('#gallery').append('<img src="'+$myFile+'" />');
                  $('#gallery img').last().css('display','none').fadeIn();

. . .
var clickEvent=函数(){
$(“#图库”).fadeOut();
$('maincontent img')。解除绑定('click');
$('maincontent img')。单击(函数(){
$myFile=$(this.attr('src');
$(“#图库”)。附加(“”);
$('#gallery img').last().css('display','none').fadeIn();
. . .
$(“#主要内容img”)。单击(单击事件)

然后按照ajpocus的建议使用off()函数:

像这样的


$(“#maincontent img”).off();

如果您一开始没有解除绑定该怎么办?来自jQuery文档:“由于.click()方法只是.on(“click”,handler)的简写,可以使用.off(“click”)进行分离。”您尝试过使用off()吗相反?我也只是改变。解除绑定到。关闭?我试过了,但它仍然不起作用,我是否仍然缺少一些东西?这是否意味着当我关闭它时,我正在破坏事件,并且它无法通过简单地添加。再次打开?我也只是改变。解除绑定到。关闭?我试过了,但它仍然不起作用,我仍然缺少一些东西吗?我是吗这并不意味着当我关闭它时,我正在破坏事件,并且它无法通过简单地添加来重新激活。再次打开?尝试查看我组合的这把小提琴。它应该可以更清楚地说明如何使用on()和off()分离和附加事件谢谢!但我仍然有一些问题。我正在尝试用以下方式将单击“#main content img”后的事件定义为一个函数:doThisOnClick=function(){//thisonclick=things appears}$(“#something”)。单击(function(){doThisOnClick();});然而,我仍然没有得到任何回应,我想我不知道如何定义作为函数应该发生的事情。嗨,你展示的语法看起来不错。有几点;首先,在你给出的URL上,#maincontent内没有img标记,因此没有任何东西可以绑定事件。另外,我查看了该网站,它抛出了一个JavascriChrome中第43行的pt错误。假设这是您的在制品,这可能是问题的根源。
var clickEvent = function () {
        $('#gallery').fadeOut();
             $('#maincontent img').unbind('click');
             $('#maincontent img').click(function(){
                  $myFile = $(this).attr('src');
                  $('#gallery').append('<img src="'+$myFile+'" />');
                  $('#gallery img').last().css('display','none').fadeIn();

. . .