jQuery在编辑模式下更改点击行为

问题描述:

我有一个简单的媒体库,图片点击到其他页面。我还有一个“编辑”模式,允许用户更改媒体库名称,说明和删除照片等。在“编辑”模式下,我想禁用照片上的默认点击操作,并使其成为如此您可以在点击时选择多个图像。然后,购买点击“取消”或“确定”,常规默认图像点击HREFs恢复。我有下面的代码,这种类型的部分工作,但我得到奇怪的行为。任何关于我在这里做错的想法或更好的方法来实现这一点?jQuery在编辑模式下更改点击行为

$(".editAlbumButton").click(function() { 
    $("#editTools").show(); 
    $(".mediaClick").preventDefault(); 
    $(".mediaClick").toggle(function() { 
     $(this).addClass('mediaSelectHighlight'); 
     }, function() { 
     $(this).removeClass('mediaSelectHighlight'); 
    }); 
}); 

$(".cancelButton").click(function() { 
    $(".mediaClick").removeClass('mediaSelectHighlight'); 
    $("#editTools").hide(); 
    $(".mediaClick"). ???(); // I don't know how to "Restore" default click action here ? 
}); 

你为什么不用标志来举例编辑。

var editable=false; 
$(".editAlbumButton").click(function() { 
    $("#editTools").show(); 
    editable=true; 
    $(".mediaClick").toggle(function() { 
     $(this).addClass('mediaSelectHighlight'); 
     }, function() { 
     $(this).removeClass('mediaSelectHighlight'); 
    }); 
}); 
$(".cancelButton").click(function() { 
    $(".mediaClick").removeClass('mediaSelectHighlight'); 
    $("#editTools").hide(); 
    editable=false; 
}); 
$(".mediaClick").click(function() { 
    if(editable){ 
     $(this).preventDefault(); 
     return; 
    } 
}); 
+0

谢谢安德烈斯 - 工作。我想知道你能否告诉我。最终,我想禁用.mediaClick默认值,然后使用“.toggle()”切换.mediaClick上的类。如果editable = true,有没有办法使用切换? – Chris

+0

好吧,如果你想要谷歌,如果是或不可编辑的if(可编辑)之前,你可以做任何你想要的代码,并始终工作。 – andres83

+0

明白了 - 感谢您的帮助:) – Chris

尝试bind ING和unbind荷兰国际集团的事件,这取决于哪个模式是活动的。

$(".editAlbumButton").click(function() { 
    $(".mediaclick").unbind("click", /*hanlder*/); 
} 
... 
$(".cancelButton").click(function() { 
    $(".mediaclick").bind("click", /*handler*/); 
}