2009-12-27 5 views
0

HTML 마크 업을 통해 정의 된 YUI 단추가 있습니다. 나는 그걸 로딩하고 "스킨"을 올바르게 관리 할 수있었습니다.Yahoo UI 사용자 지정 단추

문제는 맞춤 클릭 이벤트입니다. 모든 사용자 정의 함수를 '클릭'이벤트에 연결하는 여러 접근법을 시도했지만 어떤 방식 으로든 항상 페이지로드시 트리거하고 클릭 할 때 실행되지 않습니다. 사용자가 클릭 할 때까지 기다릴 수없는 것 같습니다. 첫 데이트 때 처녀처럼 쏜다. 아래

코드 ....

<script type="text/javascript"> 
    YAHOO.util.Event.onContentReady("submitbutton", onButtonReadySubmit); 
    YAHOO.util.Event.onContentReady("editbutton",onButtonReadyEdit); 

    var myTabs = new YAHOO.widget.TabView("demo"); 
    function editDoc(sBaseRef, sUNID) { 
     var sNewURL = sBaseRef + "/0/" + sUNID + "?EditDocument"; 
     alert("Going to : " + sNewURL); 
    window.location.href=sNewURL; 
    } 
    function onButtonReadySubmit() { 
var oSubmitButton = new YAHOO.widget.Button("submitbutton"); 
    } 
    function onButtonReadyEdit() { 
     var oEditButton = new YAHOO.widget.Button("editbutton"); 
     YAHOO.util.Event.addListener("editbutton", 'click', editDoc('a URL path goes here' , 'A PageKey goes here')); 
    } 

답변

1

YUI 버튼이 오히려 YAHOO.util.Event.addListener를 사용하는 것보다, 유이 버튼 인스턴스에 가입 자신의 클릭 이벤트를 게시합니다. 자세한 내용은 YUI Button 방문 페이지 http://developer.yahoo.com/yui/button/#handlingevents에 설명되어 있습니다.

0

문제점은 세 번째 인수입니다. 함수에 대한 참조 여야합니다. 코드에서 일어나는 일은 3 인자가 리스너가 생성 될 때 호출되는 함수이며 아무 것도 반환하지 않는다는 것입니다.

당신은이 :

YAHOO.util.Event.addListener("editbutton", 'click', editDoc(
    'a URL path goes here', 
    'A PageKey goes here' 
)); 

간단하게 당신이 원하는 것은 그러나

YAHOO.util.Event.addListener("editbutton", 'click', editDoc); 

, 당신은 또한 및 을 'URL 경로가 간다'를 전달하려는 'A PageKey은 간다 클릭 시간에 ''기능에 추가하십시오. 이렇게하려면 선택적 네 번째 인수 인 addListener() - 함수에 전달할 객체를 사용합니다.

function editDoc (ev, oArgs) { 
    var sBaseRef = oArgs.url, 
     sUNID = oArgs.key; 

    /* code here */ 

} 

YAHOO.util.Event.addListener("editbutton", 'click', editDoc, { 
    url: 'a URL path goes here', 
    key: 'A PageKey goes here' 
}); 

자세한 내용은 http://developer.yahoo.com/yui/docs/YAHOO.util.Event.html#method_addListener을 참조하십시오.

Todd가 언급했듯이 YUI Button을 만들 때이 작업을 수행 할 수도 있지만 함수 대 함수 참조와 동일한 문제가 적용됩니다.