2011-01-27 8 views
0
배경 이미지의 클릭으로 사업부를 만들 정도로 쉬운

:클릭 사업부는

$(".socialMedia").click(function(){ 
      window.location=$(this).find("a").attr("href"); 
      return false; 
     }); 

당신은 어떻게 만들 수있는 새 창에서 열기, 그 사용하지 앵커의 대상 요소, 때 내가 window.open에 window.location을 전환 나는 오류가 발생합니다. 가능한가? 들으

자바 스크립트의이 비트에

답변

3
$('.socialMedia').click(function(e){ 
    e.preventDefault(); 
    window.open($(this).find('a:first').attr('href'), ''); 
}); 

우리는 socialMedia 클래스가 모든 요소를 ​​선택합니다. 그런 다음 각 요소에 콜백 함수를 바인딩합니다. 이 함수는 e이라는 하나의 매개 변수를 정의합니다.이 매개 변수는 jQuery Event 객체를 나타냅니다.

이제 사용자가 socialMeda 요소 중 하나를 클릭하면 콜백 함수가 실행됩니다. 먼저이 함수는 jQuery event.preventDefault() 메서드를 사용하여 브라우저가 기본 동작을 수행하지 못하도록합니다 (예 : 클릭 한 링크 요소에 정의 된 URL로 이동). 그런 다음 window.open() 메소드를 사용하여 원하는 URL을 엽니 다. 클릭 한 socialMedia 요소 내의 첫 번째 링크 요소를 찾아서이 URL을 얻습니다 (여러 링크가있는 경우에 한함).

+0

+1, 왜': first'입니까? – hunter

+0

@ jsummers- 완벽하게 작동합니다. 그래서 (e)와 e.preventDefault가 false를 반환하는 것보다 낫다고 가정합니다. 두 번째 부분에 대해 설명해 주시겠습니까? 우리가 "window.open"작업을하고 선택기를 사용하여 참조하십시오 : 먼저 div에 첫 번째 링크를 얻으려면? ''('href') 이후의 작업은 무엇입니까? 내가 생각하는 목표와 어떤 관계가 있니? –

+0

@hunter, 나는 그의 마크 업에 대해 많이 알지 못하기 때문에': first '를 선택했다. –