русский  עברית
tadam logo
Нашли ошибку в тексте?
Отметьте её курсором и нажмите
Ctrl + Enter
Проверка орфографии Xhtml.co.il
Orphus system
Рассылка
Присоединитесь к списку рассылки для получения последних новостей

Введите адрес электронной почты:

jQuery.sub()

Возвращает: jQuery
Описание: Создает новую копию jQuery, свойства и методы которой могут быть изменены без изменения исходного объекта jQuery.

jQuery.hasData( элемент )

Добавлена в версию: 1.5
элемент
Элемент DOM для проверки данных.

Есть два конкретных случая использования, для которых jQuery.sub() был создан. Первый предоставляет безболезненный способ переопределения методов jQuery без полного уничтожения оригинальных методов, а другой помогает сделать инкапсуляцию и основные пространства имен для плагинов jQuery.

Обратите внимание, что jQuery.sub() не пытается сделать какую-либо разновидность изоляции - это не о его намерение. Все методы версий sub jQuery будут указывать на оригинальный jQuery (события будут связаны и вызваны через главный jQuery, данные будет связаны с элементами через главный jQuery, Ajax запросы и события будут проходить через основные jQuery, и т.д.).

Заметим, что если Вы хотите использовать этот плагин для разработок сначала вы должны серьезно рассмотреть использование чего-то вроде виджетов пользовательского интерфейса jQuery, которые управляют как состоянием, так и плагинами под-методов. Некоторые примеры использования виджетов пользовательского интерфейса jQuery для строительства плагинов.

Частные случаи использования этого метода можно лучше всего описать через несколько примеров.

Примеры

Пример 1

Добавляет метод к jQuery sub так, что она не доступна снаружи:
  (function(){
    var sub$ = jQuery.sub();

    sub$.fn.myCustomMethod = function(){
      return 'just for me';
    };

    sub$(document).ready(function() {
      sub$('body').myCustomMethod() // 'just for me'
    });
  })();
typeof jQuery('body').myCustomMethod // undefined

Пример 2

Переопределяет некоторые методы jQuery, чтобы обеспечить новые функции:
(function() {
  var myjQuery = jQuery.sub();

  myjQuery.fn.remove = function() {
    // New functionality: Trigger a remove event
    this.trigger("remove");

    // Be sure to call the original jQuery remove method
    return jQuery.fn.remove.apply( this, arguments );
  };

  myjQuery(function($) {
    $(".menu").click(function() {
      $(this).find(".submenu").remove();
    });

    // A new remove event is now triggered from this copy of jQuery
    $(document).bind("remove", function(e) {
      $(e.target).parent().hide();
    });
  });
})();

// Regular jQuery doesn't trigger a remove event when removing an element
// This functionality is only contained within the modified 'myjQuery'.

Пример 3

Создает плагин, который возвращает плагин конкретных методов:
(function() {
  // Create a new copy of jQuery using sub()
  var plugin = jQuery.sub();

  // Extend that copy with the new plugin methods
  plugin.fn.extend({
    open: function() {
      return this.show();
    },
    close: function() {
      return this.hide();
    }
  });

  // Add our plugin to the original jQuery
  jQuery.fn.myplugin = function() {
    this.addClass("plugin");

    // Make sure our plugin returns our special plugin version of jQuery
    return plugin( this );
  };
})();

$(document).ready(function() {
  // Call the plugin, open method now exists
  $('#main').myplugin().open();

  // Note: Calling just $("#main").open() won't work as open doesn't exist!
});
Была ли эта информация полезной?
   

Комментарии