2013-12-16 3 views
1

A() 도우미에서 _href 대신 callback=을 사용하면 링크를 클릭하여 새 페이지로 리디렉션하지 않고 기능을 실행할 수 있습니다.web2py에서 함수를 실행하기위한 콜백 인수를 이미지 맵 내에서 어떻게 사용할 수 있습니까?

XML() 도우미는 web2py 도우미가없는 태그로 html 코드를 구성하는 데 사용할 수 있습니다. 예를 들어 이미지에는 두 개의 하이퍼 링크가있을 수 있습니다. 하나는 이미지의 상단 절반을 클릭하고 다른 하나는 하단 절반을 클릭합니다. XML() 도우미는이 같은 A() 도우미와 함께 사용할 수 있습니다 :

{{=A(
    IMG(_src=URL('static', path_to_im), _alt='alt text', _height=400, _width=400, _usemap='#'+map_name), 
    XML('<map name="%s"><area shape="rect" coords="0,200,400,400" href = "%s"><area shape="rect" coords="0,0,400,200" href = "%s"></map>' % (map_name,enqueue,play)) 
)}} 

. . . 그러나 A()을 사용하면 _href=이 전혀 사용되지 않습니다. 그렇다면 콜백과 같은 동작을 이미지 맵의 여러 영역에서 어떻게 구현할 수 있습니까?

A(... callback=URL())의 일반적인 사용을 위해 페이지 소스에서 생성 된대로 XML()을 사용하여 임의의 ID를 추가하려고했으나 작동하지 않았습니다.

답변

1

당신은 당신이 <a> 요소 (즉 서버 측 이미지 맵에 대한 'S)에서 <img>을 포장하지 마십시오 클라이언트 측 이미지 맵을 만들 수 usemap 속성과 <map> 요소를 사용하는 경우 - 따라서 A() 도우미 (및 해당 "콜백"인수)는 여기에서 부적합합니다. 대신지도에 대한 자체 클릭 핸들러를 설정해야합니다. 테스트를 거치지 않았지만 다음과 같이 표시 될 수 있습니다.

$('map').on('click', 'area', function(e) { 
    e.preventDefault(); 
    var href = $(this).prop('href'); 
    ajax(href, [], 'mytarget'); 
});