2009-08-15 3 views
1

나는 이미 많은 부분을 검색했지만 이것이 작동하지 않는 것 같습니다.다른 링크 페이지로 리디렉션을 중지 할 수 있습니까?

프로그램에는 jquery 준비 함수가있어 클릭 이벤트를 리디렉션합니다.

if($.isFunction(link.attr('onclick'))){link.click();return false;} 
else{document.location.href=link.attr('href');} 

때문에 하이퍼 링크에서, 하나는 다른 하나는 온 클릭 이벤트 (미안 난 아직도 처음 실행되는 혼란 스러워요)되어 <a href="aaa">Link1</a>입니다,이 사건이 페이지는 새로운 페이지로 리디렉션 할 수 있습니다.

불행히도 jquery 코드를 삭제할 수 없습니다. 새 코드 만 추가 할 수 있습니다.

리디렉션하는 대신 새 창을 열려고하지만 작업의 리디렉션을 어떻게 중지 할 수 있습니까?

답변

1

"새로운 코드 만 추가"란 무엇을 의미합니까? 즉, onclick 처리기 또는 위의 코드를 변경할 수 없다는 것을 의미하면 솔루션은 다음과 같이됩니다.

동작을 변경하려는 링크를 식별하고 onclick 처리기를 제거합니다.

$(".someClass a").unbind('click'); 

새로운 온 클릭 처리기를 추가 :

$('.someclass a').bind(function(e){ 
    var url = $(e.target).attr('href'); 
    window.open(url, 'width=200'); 
})); 

페이지가로드 재정의하고자하는 모든 링크가 DOM에있을 때이 모든 코드가 실행되어야한다.

$(document).ready(function(){ 

    //unbind links ... 
    $(".someClass a").unbind('click'); 
    //bind with changed onclick handler 
    $('.someclass a').bind(function(e){ 
     var url = $(e.target).attr('href'); 
     window.open(url, 'width=200'); 
    })); 

}); 
0

내가 jQuery를 블록이 하나가 정상적인 하이퍼 링크를 클릭 시뮬레이션 그렇지 않으면 존재하는 경우에만 온 클릭을 실행하는 것을 제대로 이해 해요 경우. 그래서

당신이 새 창에서 열어, 그리고 당신이 onclick 이벤트 추가하는 것 jQuery를에게 옵션을 변경할 수 없습니다 원하는 경우 :

<a href="aaa" onclick="window.open(this.href);return false;">Link1</a> 

이에서 온 클릭 개방으로 실행해야을 새로운 창.

0

모든 도움에 감사드립니다.

policy..the 프로그램이 부모 페이지에서 일부 클릭 또는 하이퍼 링크 리디렉션 페이지를 만들므로 리디렉션 jquery 기능을 삭제할 수 없습니다. 그러나 일부 페이지는 새 창에서 열어야 변경 될 수 있습니다.

나에게 자세히 설명 할 수

텍스트 링크의 두 가지 유형

<tr><td>first</td><td><a href="aaa">link1</a></td><td>3rd</td></tr> 
<tr><td>first</td><td><a href="aaa" onclick="fun1()">link2</a></td><td>3rd</td></tr> 

은 다음과 같이 쓰는 이유는 둘 다 이해할 수 없습니다 ...하지만 정말 미안 나는 모든 변경할 수 있습니다 HTML

난 단지 새로운 기능을 추가한다 할 수

는 ....

사용자가 직접 하이퍼 링크 텍스트를 클릭하면 그래서, 나를 위해 쉽게

, 나는 _blank에 대상을 추가 할 수 있습니다. 하지만 우리는 이벤트 기능 변경 페이지 이벤트 사용자가 레코드를 마우스로 이동하고 클릭 할 수 있습니다. 또한 새 페이지를 리디렉션 할 수 있습니다.

이것이이 funciton입니다.

if($.isFunction(link.attr('onclick'))){link.click();return false;} // I regard it for onclick function 
else{document.location.href=link.attr('href');} // it's for tag click.. 

그래서 나는 페이지를 변경하는 3 가지 방법이 있다고 말할 수 있습니다.

  1. 클릭 이벤트 funciton없이 직접 텍스트 링크를 클릭하십시오.

  2. 태그 영역의 동일한 행을 클릭하십시오.

  3. 클릭 링크가 있지만 onclick 기능이 있습니다. 내가 지금 알고있는 프로그램의 ....

So..before JS 기능 나는 페이지 이벤트를 변경하는 몇 가지 코드를 추가 할 수 있습니다. 부모 창은 동일합니다. 다시로드하지 마십시오. 일부 영역을 클릭하면 새 창에서 웹 페이지를 열 수 있습니다.

관련 문제