나는 네트워크에서 작동하는 양식의 유효성을 검사하는 플러그인을 작성했습니다. 여기서 문제는 우리 페이지 중 일부가 여러 양식을 가지고 있으며 전역 변수가 덮어 쓰기된다는 것입니다. 나는 최선을 다해 모범을 보이려고 노력할 것이다. 코드 자체가 너무 길어서 붙여 넣을 수 없습니다.jQuery 플러그인에 인스턴스 변수 저장
이 코드는 끔찍한 잘못 알고 있지만 너무 복잡하게하지 않고도이 코드의 여러 인스턴스를 사용하여 최상의 방법을 얻으려고합니다.
jQuery 플러그인 :
(function($){
methods = {
'method1': function(){
alert('form: ' + globals.form_name);
}
}
$.fn.validationplugin = function() {
globals.form_id = $(this).attr('id');
}(jQuery);
var globals = {}
}(jQuery);
HTML 전화 :
<form id="form1"></form>
<form id="form2"></form>
<script type="text/javascript">
$('#form1').validationplugin();
$('#form2').validationplugin();
</script>
플러그인 내부에서 정확히 무엇을하고 있는지에 따라 다르지만 함수 내부에'globals' 변수를 만들어서 로컬 변수로 만드는 것만 큼 간단합니다 (이름을 바꿀 수도 있지만).) . 어쨌든 목적은 무엇입니까? 요소에 고유 한 모든 것은 함수 내부에서 발생해야하며, 함수 내부에서 (현재 가지고 있지 않은)'this.each()'콜백 내부에서 발생해야합니다. –