jQuery를 UI 1.8은 다음과 같은 코드를 사용하여 위젯을 확장 할 수있는 기능이 추가 된 위젯 서브 클래 싱을 수행어떻게
$.widget("my.weirdbutton", $.ui.button, {
});
지금 나는 weirdbutton
만들 수 있으며 버튼처럼 많이 작동합니다
$("#myButton").weirdbutton();
을
그러나 이상한 버튼 이벤트 만 실행됩니다. 그래서 만약 내가 뭔가를 가지고 있다면
$(".button").bind("buttoncreate", function() {
console.log("a button was created");
});
나는 weirdbuttons의 모든 창조를 놓칠 것이다. Weirdbutton 위젯의 버튼 이벤트를 수동으로 트리거하면이 문제를 해결할 수 있습니다. 훌륭하지는 않지만 작동합니다.
더 큰 문제는이 같은 그 코드가 작동하지 않을 수 있습니다 :
$("#mybutton").weirdbutton();
$("#mybutton").button("option", "text", "My New Text");
두 번째 줄은 오히려 기존의 버튼에서 옵션을 설정하는 것보다, 새로운 하나를 만듭니다. 이 문제를 해결하는 방법을 모르겠습니다.
그래서, Liskov Substitution Principle 다음에 서브 클래 싱 된 위젯을 만드는 방법이 있습니까?
문제는 'console.log'가 내 플러그인이 아닌 ** 사용자 **에 의해 호출된다는 것입니다. 나는 그들이 정말로하고 싶은 것을 알지 못한다. (로깅은 단지 예일 뿐이다.) 위젯 코드에 그것을 하드 코딩 할 수 없다. – itsadok
감사합니다 ant1j, 나는 상급 클래스의 원래 작성 방법을 호출하는 방법을 알지 못했습니다! – acme
질문이 "답변"이라고 표시하는 것을 잊지 마십시오! – ant1j