몇 가지 요소에 적용되는 플러그인이 있습니다. JQuery 플러그인 객체를 저장하고 검색 할 수있는 방법이 없으므로 그 객체의 메소드를 실행할 수 있습니다. 샘플 예는 다음과 같습니다.html 요소에서 플러그인 식별
$('#li1').myPlugin(); // apply plugin object to different li
$('#li2').myPlugin(); // apply plugin object to different li
$('#li3').myPlugin(); // apply plugin object to different li
이제 다른 외부 요소의 사용자 활동에서 개체를 검색하여 플러그인의 일부 메소드를 실행하고 싶습니다. highLight
이후
var idx = 2
$('body').click(function(){ $('li').eq(2).highLight(); })
처럼 myPlugin
하지만 리튬의 공개 방법이다, 그래서 그것은 실행되지 않습니다.
$(this)[0].obj = this; // sounds weird.
이 요소와 객체를 저장하는 글로벌 연관 배열을 만드는 이외의 다른 옵션은 무엇입니까, 나는 요소에 속성 (하지만하지 문자열)로 myPlugin 객체를 설정하거나 내가 플러그인 초기화에서이 방법을 수행 할 수 있습니다 이드는 열쇠입니다. 필자의 경우 플러그인 구성 요소에 ID가 있거나 없을 수도 있으므로 이것이 불가능합니다.
편집
이 샘플 플러그인은 실제 여기에 게시 너무 커서입니다. 목표는 외부 활동에 의해 요소와 연관된 플러그인을 식별하는 것입니다. 샘플 예제에서는 body.click
을 사용하고 있지만 내 플러그인 내에서 클릭을 구현할 수 없다고 가정합니다. 실제로 이벤트는 플러그인에 알려지지 않은 모든 외부 사용자 정의 이벤트 일 수 있습니다. 나는 분명히 희망한다.
(function ($) {
$.fn.myPlugin = function(){
var ele = this;
// elr.get(0).extension = this; // can I do this, cross browser?
// so that later i can call it as
// $('li').eq(1).get(0).extension.highLight()
this.highLight = function(){
ele.css('color','red');
}
this.blueIt = function(){
ele.css('color','blue');
}
this.blueIt();
}
})(jQuery);
아마도 플러그인의 일부를 보여줄 수 있습니다. 아마도 메소드 정의 – ManseUK
@ManseUK 문제를 명확히하기 위해 게시했습니다. – hungryMind