사용자가 탭 또는 브라우저 창을 닫을 때만 OnBeforePageUnload를 트리거하려고합니다. 사용자가 내 웹 사이트를 탐색 할 때 사용자가 입력 한 데이터를 잃지 않도록 경고 대화 상자를 트리거하는 사용자 지정 메커니즘이 있습니다.html 앵커 요소에 대해 jquery 클릭 이벤트가 발생하기 전에 리디렉션이 발생하는 이유는 무엇입니까?
$('a[href]').click(function (event) {
buttonOutsidePageClicked = false;
});
그런 다음 onbeforepageunload 이벤트가 트리거 : 그래서 내 페이지의 링크를 클릭했습니다 때마다, 나는 플래그를 설정합니다.
<a id="cpm_UploadLink" class="button" rel="no" href="/pages/otherPage">
<span class="btnLeft"></span>
<span class="btnMiddle">Click Me</span>
<span class="btnRight"></span>
</a>
: 한 다음
function OnBeforeUnload(oEvent) {
if (buttonOutsidePageClicked)
return navAwayMessage;
}
이를 제외하고는 페이지 내 모든 링크에 대해 잘 작동 : 나는이 (가)입니다 onbeforeunload 대화에 내장 여부를 표시해야합니다 있는지 확인하기 위해 플래그의 값을 확인
이 html은 사용자 정의 웹 컨트롤에 의해 생성됩니다. 링크를 클릭하면 클릭 이벤트없이 다른 페이지로 리디렉션됩니다. 그래서 플래그를 설정할 수없고 onbeforeunload 메시지가 내장되어 있습니다.
나는 인라인이 같은 컨트롤에 직접 온 클릭 속성을 추가 추가 할 때 :<a id="cpm_UploadLink" class="button" rel="no" href="/pages/otherPage"
onclick="javascript:buttonOutsidePageClicked = false;">
<span class="btnLeft"></span>
<span class="btnMiddle">Click Me</span>
<span class="btnRight"></span>
</a>
모든 것이 잘 작동합니다. 그러나 이것이 내가 이것을 해결하려는 방법이 아닙니다.
누군가 내가 여기에서 만들고있는 실수를 설명 할 수 있습니까?
저는 많은 코드를 찾고 있지만 성공하지 못했습니다.
이 게시물을 찾았습니다. Preventing Links before jQuery is Loaded 하지만이 링크가 하나뿐이기 때문에 내 문제와 관련이 있는지는 잘 모릅니다.
미리 도움을 청하십시오. 모든
클릭 이벤트가 발생하지 않으므로이 기능이 작동하지 않습니다. 아니면 당신이 대답하는 것을 그리워합니까? 라이브 메소드는 무엇을합니까? $ ("a")와 다른가요? click (function() {...}); ? – ThdK
"현재 선택자와 현재 및 미래에 일치하는 모든 요소에 대한 이벤트 처리기를 연결하십시오." jquery가로드 된 후 다른 js가 html 요소를 만들 때 live를 사용해야합니다. 귀하의 경우, 사용자 정의 웹 컨트롤이 js를 통해 요소를 작성하는지 확신 할 수 없습니까? 이벤트가 트리거되지 않는다고 말하면 이벤트가 DOM 요소에 영향을 미치지 않는다는 것을 의미합니다. –
@ThdK - 코드를 이해하지 못한다면 작동하지 않을 것이라고 말하지 마십시오. 이제 요소가 페이지에서 제거/추가 되더라도 '라이브 바인딩'이 작동하므로 실제로 문제가 해결 될 수 있습니다. – Dementic