Показать сообщение отдельно
  #1 (permalink)  
Старый 27.07.2011, 19:12
Интересующийся
Отправить личное сообщение для Greck Посмотреть профиль Найти все сообщения от Greck
 
Регистрация: 27.07.2011
Сообщений: 27

Работа со свойства, при использовании fn.extend в jQuery
Тестовый пример.

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 маловато данных.
Ответить с цитированием