나는 보통 다른 사람이 작성한 코드를 읽지 않습니다. 왜일까요? 피곤한! 게다가 이 동지가 준 것은 압축되어 있었다! 땀. . . 날 시험해봐, 그렇지? 그리고 이 친구는 예제코드도 알려주지 않았고, 코드에 문제가 없다고만 하더군요. 나는 그것을 "깨기" 위해 열심히 노력했지만 내 뇌 세포가 너무 빨리 죽었습니다! 바보가 되기 전에 나는 아래를 내려다보지 않기로 결심했다. 그냥 사용자 정의 개체에 사용자 정의 이벤트에 대한 지원을 추가하는 것이 아닌가요? 예제를 하나 써보겠습니다. 튜토리얼이라 해도 이해가 안 되면 할 수 있는 게 없어요! 나는 당신을 위해 코드를 작성하고 당신이 돈을 받고 팔 수 있도록 할 만큼 어리석지는 않을 것입니다!
좋아요, 제가 작성한 코드는 다음과 같습니다. 주의하세요:
]
In 이 예에서는 사용자 정의되었습니다. A: JCEvent, c1, c2, c3은 모두 해당 인스턴스입니다.
각 인스턴스에는 일반적으로 개체의 컨테이너로 사용하는 oOutline이 있습니다. pParent는 사용자 정의 개체가 표시되는 위치를 나타내는 데 사용되며, 지정되지 않은 경우 document.body입니다.
예제에서는 onCreate, onChangeSkin, onClick의 세 가지 맞춤 이벤트를 정의했습니다.
onCreate는 create 메소드에서 트리거됩니다.
onChangeSkin은 setSkin 메소드에서 트리거됩니다.
onClick은 oOutline.onclick에서 실행됩니다.
호출 순서:
create 메소드에서 onCreate가 호출되므로 c1.create()보다 먼저 c1.onCreate를 선언해야 합니다.
이벤트 매개변수 참조:
this.setSkin = function(pSkin){
var oldSkin = oOutline.className;
oOutline.className =
if(typeof this.onChangeSkin == "function")
this.onChangeSkin(oldSkin,pSkin)
}
this.onChangeSkin(oldSkin,pSkin)
이렇게 하면 각 인스턴스에서 oldSkin과 newSkin을 사용할 수 있습니다.
예:
c1.onChangeSkin = function(pOld,pNew){
Alert("onChangeSkin 이벤트 n은 c1의 스킨을 설정합니다: n new skin: " pNew " n old skin: " pOld) ;
}
또한 예에서는 다음과 같습니다.
$.$css = function(pKey,pValue,p){
var obj = p ? $.$ (p) : this;
obj.$css = $.$css;
}
이 단락 Object.prototype.$css = function(...) 작성은 전혀 실패했습니다. 그 이유는 여기서 논의 범위를 벗어납니다.
할 말이 없으니 그냥 공란으로 두세요. 이해가 안 되시는 분들을 위해 자바스크립트 지식을 키워보려고 합니다.
여담: 항상 jQuery, 프로토타입, json 등을 다루지는 마세요.