Тестовый пример.
index.html:
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<p>
<input id="gotype" type="checkbox"/>
<label for="gotype">Read only</label>
<br/>
<input id="go" type="button" value="GO" />
</p>
</body>
<script type="text/javascript" src="js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="js/test.js"></script>
</html>
js/test.js:
(function($) {
$.fn.extend({
setVariable: function(){
this.testVariable = true;
alert('Set: '+this.testVariable);
},
getVariable: function(){
alert('Get: '+this.testVariable);
}
});
})(jQuery);
$(document).ready(function() {
$('#go').click(function() {
if ($('#gotype')[0].checked) {
$(this).getVariable();
} else {
$(this).setVariable();
}
});
});
Ссылка на пример:
http://test.cms3.org/peretyaka/1/
В результате, при setVariable(), выводится "Set: true", а, если затем вызвать getVariable() - "Get: undefined". Если объявлять свойства, то результат тот же.
В общем-то вопрос один: почему?
И буду благодарен за ссылку на материал с описанием, а то в документации jQuery маловато данных.