2014-09-16 3 views
0

(По отключить я имею в виду удалить ссылки, не удаляя их содержимое, а затем включить - для получения ссылки)Отключение и включение ссылки с помощью JQuery

Я прочитал о обертке и ReplaceWith, связывают и отвязать. Но я не могу заставить его работать. В основном у меня есть кнопка, которую я нажимаю, чтобы отключить/включить ссылки. Вот код, который я работал до сих пор:

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 конечно

JSfiddle здесь: http://jsfiddle.net/ugkc8gsd/7/

+0

Показать и скрыть их, не отключать их. Причина, по которой вы не можете отключить их, заключается в том, что это не то, что должны делать ссылки. –

+0

@CBauer Спасибо, но, пожалуйста, просветите меня. Как я это сделаю? Hehe –

+0

Расскажите мне, что вы пытаетесь достичь, потому что я не понимаю, чего вы точно хотите. Возможно, создайте jsfiddle. – VRC

ответ

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/

+0

О, я получаю то, что вы хотели. Вы должны были сказать, что вы больше не хотите, чтобы они были якорями. В любом случае, это решение кажется полезным для вас. Хотя ur, если это странно, так как u не использует переменную редактирования, которую вы объявляете в начале. Вы заменяете текст, который делает его несколько двойным. Вы могли бы просто создать новый div или якоря вместо замены, но я не знаю, что лучше для u проекта. Хорошо, что нашел решение tho. В следующий раз опишите это немного лучше;) – VRC

+0

@ VRC hi! Просто посмотрел ваш комментарий. Да, это делает его двойным, но все в порядке. Мне просто нужно было подстроить мой CSS, чтобы он выглядел одинаково :) И мне не пришлось удалять якоря, действительно, но решение, которое вы мне дали, не получилось, так что .. Хе-хе, но спасибо в любом случае! –

0

Чтобы сделать ссылки невидимыми, когда они отключены ...

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

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

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

Все еще не так уверен, что вы точно пытаетесь достичь, но чтобы скрыть ссылки, которые вы просто спрячете. http://jsfiddle.net/ugkc8gsd/8/

Скрыть их в кнопку событий нажмите

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


Edit: OOH я вижу у отредактировали пост.
Ну вот новый jsfiddle
http://jsfiddle.net/ugkc8gsd/10/
Надеюсь, что это помогает

Edit 2: Вот Обещанный jsfiddle.
http://jsfiddle.net/ugkc8gsd/12/
Надеюсь, это то, что вы хотите.

+0

Нет. Я не хочу скрывать всю ссылку. Содержимое внутри ссылки должно оставаться. –

+0

Что вы имеете в виду с содержимым внутри ссылки, должно остаться? Html все тот же, но он просто не отображается – VRC

+0

Я имею в виду, что «Некоторое содержимое» должно быть еще видимым.Единственное различие заключается в том, что «Некоторый контент» не должен выступать в качестве ссылки. Результат должен быть чем-то вроде [this] (http://stackoverflow.com/questions/1767414/jquery-easiest-way-to-wrap-an-image-tag-with-an-a-anchor-tag) OMG извините если я не даю себе понять :( –

Смежные вопросы