누구든지 사용하지 않고 jquery에서 링크를 비활성화하는 방법을 알고 return false;
있습니까?
특히, 내가하려고하는 것은 항목의 링크를 비활성화하고 jquery를 사용하여 클릭을 수행 한 다음 해당 항목을 다시 활성화하여 다시 클릭하면 기본으로 작동하도록하는 것입니다.
감사. 데이브
업데이트
코드는 다음과 같습니다. .expanded
클래스가 적용된 후해야 할 일은 비활성화 된 링크를 다시 활성화하는 것입니다.
$('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
});
그러면 지정된 href를 방문하는 하이퍼 링크의 기본 동작이 방지됩니다.
jQuery 튜토리얼에서 :
클릭 및 대부분의 다른 이벤트의 경우 이벤트 핸들러에서 event.preventDefault ()를 호출하여 jquery.com에 대한 링크를 따라 기본 동작을 방지 할 수 있습니다.
당신이 원하는 경우 preventDefault()
특정 조건이 (문제가 예를 들어 숨겨져)을 충족하는 경우에만, 당신은 클래스와 UL의 가시성을 테스트 할 수있는 확장 . 만약 그것이 보이지 않는다면 (즉, 숨겨져 있지 않다면) if 문이 입력되지 않을 것이므로 링크는 정상적으로 실행되어야하므로 기본 동작은 막히지 않을 것입니다 :
$('ul li').click(function(e) {
if($('ul.expanded').is(':hidden')) {
e.preventDefault();
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
}
});
답변
이 시도:
$("a").removeAttr('href');
편집하다-
업데이트 된 코드에서 :
var location= $('#link1').attr("href");
$("#link1").removeAttr('href');
$('ul').addClass('expanded');
$('ul.expanded').fadeIn(300);
$("#link1").attr("href", location);
답변
나처럼 Google을 통해 여기에 온 다른 사람들을 위해-여기 다른 접근법이 있습니다.
css:
.disabled {
color: grey; // ...whatever
}
jQuery:
$('#myLink').click(function (e) {
e.preventDefault();
if ($(this).hasClass('disabled'))
return false; // Do something else in here if required
else
window.location.href = $(this).attr('href');
});
// Elsewhere in your code
if (disabledCondition == true)
$('#myLink').addClass('disabled')
else
$('#myLink').removeClass('disabled')
이 클래스는 CSS 클래스 일뿐만 아니라
class = “buttonstyle”
뿐만 아니라이 두
class = “buttonstyle disabled”
jQuery로 클래스를 쉽게 추가하고 제거 할 수 있습니다. href를 만질 필요가 없습니다 …
나는 jQuery를 좋아한다! 😉
답변
다음은 간결하고 최소화 된 스크립팅을 선호하는 대체 CSS / jQuery 솔루션입니다.
CSS :
a.disabled {
opacity: 0.5;
pointer-events: none;
cursor: default;
}
jQuery :
$('.disableAfterClick').click(function (e) {
$(this).addClass('disabled');
});
답변
다음을 클릭하여 링크 클릭을 제거 할 수 있습니다.
$('#link-id').unbind('click');
다음과 같은 방법으로 링크를 다시 활성화 할 수 있습니다.
$('#link-id').bind('click');
링크에 ‘disabled’속성을 사용할 수 없습니다.
답변
href 경로를 사용하면 저장할 수 있습니다
비활성화하려면 :
$('a').each(function(){
$(this).data("href", $(this).attr("href")).removeAttr("href");
});
그런 다음 다음을 사용하여 다시 활성화하십시오.
$('a').each(function(){
$(this).attr("href", $(this).data("href"));
});
어떤 경우에는 클릭 이벤트가 이미 다른 곳에 바인딩되어 있고 제어 할 수 없기 때문에이 방법으로해야했습니다.
답변
나는 항상 링크를 비활성화하기 위해 jQuery에서 이것을 사용합니다.
$("form a").attr("disabled", "disabled");