2015-01-17 3 views
2

webuiPopover이라는 jQuery 플러그인을 사용하고 있습니다. 그것은 링크에 popover를 추가합니다. 사용자가 링크를 가리면 AJAX를 통해 팝업의 내용을 가져옵니다. 이를 위해서는 적절한 매개 변수가있는 특정 url이 필요합니다. 당신이 볼 수 있듯이함수 매개 변수의 jQuery의 attr (...)이 정의되지 않았습니다.

$(document).ready(function() { 
    $(".qa-user-link").webuiPopover({ 
     placement:"auto", 
     trigger:"hover", 
     type:"async", 
     cache:false, 
     url:"./qa-plugin/q2a-user-popover/qa-user-popover-details.php?handle="+$(this).attr("data-id")+"&incdir=%2Fhome%2Fpeatar5%2Fpublic_html%2Fbiophilie%2Fqa-include%2F", 
     content:function(data) {return data;} 
    }); 
}); 

내가 jQuery의 attr(...) 기능의 사용을 만드는 'URL을'계산 :

그래서이 코드입니다. 아쉽게도 코드의 작은 부분은 항상 '정의되지 않음'을 반환합니다. 나는 content 매개 변수 코드 ($(this).attr("data-id"))의 같은 부분을 사용하는 경우

(잘 작동 function (data) {return $(this).attr("data-id");}을 제공합니다.

?

+2

이 상황에서 '$ (this)'는 무엇입니까? 나는 당신이 브라우저 개발 콘솔을 사용하기를 제안한다. – arkascha

+0

'$ (this)'는 클래스 속성으로서 "qa-user-link"를 가질 수있는 가능한 요소들 중의 하나이다. 나는 jQuery가 자동으로이 모든 요소들을 돌았다고 생각했다.'$ (this)'는 그것들을 참조하고 있었다 ... 도움을 주셔서 감사합니다! –

+1

글쎄 ... "여기에 도움이 안되는 것 같아?" 짐작하지 말고, 그것이 무엇인지보십시오! – arkascha

답변

3

this$(document).ready의 콜백 내부의 document을 말한다 잘못 무슨 일이야. 플러그인이 binding 요소이므로 content 콜백에서 작동합니다. 이라고 부르면

각 팝업에 대해 별개의 URL을 사용하려면 각 요소에 대해 Popover 플러그인을 별도로 바인딩해야합니다.

$(document).ready(function() { 
    $(".qa-user-link").each(function () { 
     var $this = $(this); 
     $this.webuiPopover({ 
      placement:"auto", 
      trigger:"hover", 
      type:"async", 
      cache:false, 
      url:"./qa-plugin/q2a-user-popover/qa-user-popover-details.php?handle="+$this.attr("data-id")+"&incdir=%2Fhome%2Fpeatar5%2Fpublic_html%2Fbiophilie%2Fqa-include%2F", 
      content:function(data) {return data;} 
     }); 
    }); 
}); 
+0

매력처럼 작동합니다. 정말 고마워요! (나는 그것을 위해 필요한 평판을 가지고 있지 않기 때문에 나는 upvote 할 수 없다) –

+0

@ 브루노 걱정하지 마 :) 내가 도울 수있어서 기쁩니다! – Paulpro