jquery'de return false;
kullanmadan bir bağlantının nasıl devre dışı bırakılacağını bilen var mı?
Spesifik olarak yapmaya çalıştığım şey, bir öğenin bağlantısını devre dışı bırakmak, jquery kullanarak bazı şeyleri tetikleyen bir tıklama gerçekleştirmek ve ardından bu bağlantıyı yeniden etkinleştirmek, böylece tekrar tıklandığında varsayılan olarak çalışmasını sağlamak.
Teşekkürler. Dave
GÜNCELLEME İşte kod. .expanded` sınıfı uygulandıktan sonra yapması gereken şey, devre dışı bırakılan bağlantıyı yeniden etkinleştirmektir.
$('ul li').click(function(e) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
//return false;
});
$('#myLink').click(function(e) {
e.preventDefault();
//do other stuff when a click happens
});
Bu, belirtilen href'i ziyaret etmek olan bir köprünün varsayılan davranışını önleyecektir.
jQuery öğretici'den:
Tıklama ve diğer birçok etkinlik için varsayılan davranışı engelleyebilir - burada, jquery.com bağlantısını takip ederek
- olay işleyicisinde event.preventDefault() çağrısı yaparak
Eğer preventDefault()
işlevini sadece belirli bir koşul yerine getirildiğinde (örneğin bir şey gizlendiğinde) kullanmak istiyorsanız, ul'nizin görünürlüğünü expanded sınıfı ile test edebilirsiniz. Eğer görünürse (yani gizli değilse), if deyimi girilmeyeceği için bağlantı normal şekilde çalışmalıdır ve böylece varsayılan davranış engellenmeyecektir:
$('ul li').click(function(e) {
if($('ul.expanded').is(':hidden')) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
}
});
Bunu dene:
$("a").removeAttr('href');
EDIT-
Güncellenmiş kodunuzdan:
var location= $('#link1').attr("href");
$("#link1").removeAttr('href');
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
$("#link1").attr("href", location);