使用jquery禁用和启用链接

时间:2014-09-16 15:42:22

标签: javascript jquery

(禁用我的意思是删除链接而不删除其内容,然后启用 - 检索链接)

我读过有关换行,替换,绑定和取消绑定的内容。但我似乎无法让它发挥作用。基本上我有一个按钮,我点击以禁用/启用链接。以下是我迄今为止所使用的代码:

var edit = false;
$('.courselink').click(function(e){ //the links
if(edit == true){
    return false;
}
});

$('.vieweditlink').click(function(){ //This is the button

    if($(this).html() == 'Edit'){
        $(this).html('View');
        edit = true;
    }
    else {
        $(this).html('Edit');
        edit = false;
     }
 });

一切都在$(document).ready当然

JS在这里:http://jsfiddle.net/ugkc8gsd/7/

3 个答案:

答案 0 :(得分:2)

仍然不太确定你究竟想要实现什么,但隐藏链接你只是隐藏它们。 http://jsfiddle.net/ugkc8gsd/8/

在点击事件按钮中隐藏它们

$('.vieweditlink').click(function () 
{
    $('.courselink').hide();
});


修改:哦,我看到你编辑了你的帖子。
那么这里是一个新的jsfiddle
http://jsfiddle.net/ugkc8gsd/10/
希望它有所帮助

编辑2 : 这是新承诺的jsfiddle http://jsfiddle.net/ugkc8gsd/12/
希望这是你想要的。

答案 1 :(得分:0)

要使链接在禁用时不可见...

http://jsfiddle.net/6q7dr9fq/3/

$('.courselink').click(function(e){ //the links
    $('.courselink:hidden').show();

    $(this).hide();
});

答案 2 :(得分:0)

并非所有人都感兴趣,但在这里我是如何解决问题的:

var edit = false;
var links = $('.courselink').toArray(); //this gets the links but not the whole elements


$('.vieweditlink').click(function(){

if($(this).html() == 'Edit'){
    $(this).html('View');
    edit = true;

    $('.courselink').each(function(i) {
        $(this).replaceWith("<div class='courselink'>"+$(this).html()+"</div>");
    });
}
else {
    $(this).html('Edit');
    edit = false;

    $('.courselink').each(function(i) {
        $(this).replaceWith("<a class='courselink' href='"+links[i]+"'>"+$(this).html()+"</a>");
    });
}
});

如果有人知道更好的解决方案,请随时分享!谢谢!

JSFiddle:http://jsfiddle.net/13tudb3p/