팝업을 열기 전에 링크를 비활성화 한 다음 5 초 후에 다시 활성화 할 수 있습니다. 문제은 링크를 활성화/비활성화하는 것이 매우 휴대하기 쉬운 방법으로 수행 될 수 없다는 것입니다. 이 문제를 해결하려면 실제 링크를 저장하고 가짜 링크로 대체 한 다음 나중에 (간격 경과 후) 다시 활성화해야합니다. 이처럼 :
function newPopup(url) {
// Save current link and replace it with a fake one
var oldLink = $("#linkid").attr("href");
$("#linkid").attr("href", "#");
setinterval(function() {
// Restore true link
$("#linkid").attr("href", oldLink);
}, 5000);
// ...
}
당신은 (다른 모든 코드를 오염없이) 많은 다른 링크를 재사용하기 위해 별도의 기능 temporaryDisableLink(id, timeout)
이 코드를 추출 할 수 있습니다.
이제 다른 솔루션을 살펴 보도록하겠습니다.
귀하의 HTML 코드에 (경우에 당신이 그렇지 않으면 링크 id 매개 변수를 전달할 필요가 없습니다 많은 링크에 대한 동일한 기능을 다시 사용하려는)으로 업데이트해야합니다
<a id="link-print"
href="JavaScript:newPopup('#link-print', 'print.php');">
Print
</a>
pointer-events
CSS 속성 IE (및 오페라)에서 지원되지 않으므로 실제 환경에서 사용할 수는 없습니다. 어쨌든 그건 :
function newPopup(id, url) {
$(id).css("pointer-events", "none");
setinterval(function() {
$(id).css("pointer-events", "auto");
}, 5000);
// ...
}
팝업을 열 자바 스크립트를 사용하고 당신이 당신이 계획하는 경우 사용자 정의disabled
속성을 사용 (또는 pointer-events
를 확인하기 위해 약간에게 기능을 변경하기 위해 고려할 수 있기 때문에) 함께 사용할 :
function newPopup(id, url) {
if ($(id).attr("disabled") == "disabled") {
return false;
}
$(id).attr("disabled", "disabled");
setinterval(function() {
$(id).removeAttr("disabled");
}, 5000);
// ...
}