Опубликуйте свои краткие функции-дополнения для jQuery - PullRequest
12 голосов
/ 11 января 2009

Точно так же, как в разделе о расширении c # для SO. Было бы замечательно, если бы мы смогли собрать целый ряд полезных расширений функций jQuery.

Обратите внимание, что идея состоит в том, чтобы иметь короткие фрагменты кода, а не полноразмерные хорошо известные плагины или пользовательские интерфейсы

Ответы [ 9 ]

10 голосов
/ 11 января 2009
// Allows chainable logging
// USAGE: $('#someDiv').hide().log('div hidden').addClass('someClass');
// Demo : http://jsbin.com/odeke
jQuery.log = jQuery.fn.log = function (msg) {
      if ( window.console && window.console.log ) {
         console.log("%s: %o", msg, this);
      }
      return this;
};
4 голосов
/ 01 сентября 2009

Интерпретирует абсолютные URL-адреса на странице как внешние ссылки и устанавливает их для открытия на новой вкладке и для создания удобного заголовка и класса для определенного стиля.

$("#content [href^='http']:not(a:has('img'))").each(function(){$(this).attr("target", "_blank").addClass("external").attr("title", "External Link to " + $(this).attr("href"))});
4 голосов
/ 28 февраля 2009

Вы можете использовать это, чтобы увидеть, существует ли селектор.

if($.exists('#mydiv')) { }

$.exists = function(selector) {
    return ($(selector).length);
}
1 голос
/ 01 сентября 2009

Быстрый и легкий AJAX:

Следующее позволяет вам делать анкеры как

<a href='http://www.google.com/' rel='#myselector' class='ajax' />

, которые выполняют запрос AJAX по URL-адресу href и вставляют результат в первый элемент, определенный селектором в атрибуте rel привязки.

// Allow hrefs with the class 'ajax' and a rel attribute set with a selector to load content via ajax into the selected element.
$('.ajax').unbind('click').click
(
    function(e)
    {
        $($(this).attr('rel')).load($(this).attr("href"));
        e.preventDefault();
    }
);
1 голос
/ 11 января 2009

Плагин validation потрясающий. Использовал его в приложении ASP.NET MVC для динамической проверки содержимого на клиенте с помощью ajax ... даже возвращал пользовательские сообщения об ошибках, основанные на вводе пользователя ... очень круто.

0 голосов
/ 01 сентября 2009

Расширение селекторов, то есть написание собственных пользовательских селекторов. Вот пример для двоих:

$(document).ready(function(){
    $.extend($.expr[':'], {
        inputEmpty: inputEmpty,
        inputNotEmpty: inputNotEmpty
    });
});

function inputEmpty(el) {
    return $(el).val() == "";
}

function inputNotEmpty(el) {
    return $(el).val() != "";
}
0 голосов
/ 01 сентября 2009

ах Я немного в стороне от первоначального вопроса, но если есть фрагмент "получить / установить идентификатор", тогда у меня есть код для создания уникальных идентификаторов:

$.increment = function (){
    var me = arguments.callee;  
    if (!me.count) me.count = 0;
    return ++me.count;      
}

$.domToSelector = function (jq, options){
    var selectors = [], i = 0; defaults = {}, opts = $.extend(defaults,options);
    $(jq).each(function(){  
        var $node = $(this);    
        if ($node.attr('id')){
            selectors[i] = '#'+$(this).attr('id');      
        }
        else{
             var customId = ''+new Date; 
             customId = customId.replace(/ /g, '').replace(/:/g, '').replace(/\+/g, '');
             customId = customId+'_'+$.increment();
             if (opts.prefix)  customId = opts.prefix+customId;
             $node.attr('id', customId);
             selectors[i] = '#'+customId;        
        }
        i++;    
    });
    if (selectors.length == 1) selectors = selectors[0];    
    return selectors;
}
0 голосов
/ 11 февраля 2009

Просто ярлык для получения / установки идентификатора элемента.

 (function($) {
    $.fn.id = function(newDOMID){
        var $this = $(this); 
        if($this.attr('id')){
            if(!newDOMID){
                $this.id.getID($this);
            }
            else {
                $this.id.setID($this,newDOMID);
            }   
        }
        else {
            alert('The target no longer appears to be a part of the DOM!')
        }
    };
    $.fn.id.getID = function($this){
        return $this.attr('id');
    };
    $.fn.id.setID = function($this,newDOMID){
        $this.attr('id',newDOMID);
        return this
    };
})(jQuery);

Это jID на сайте плагинов jQuery.

0 голосов
/ 12 января 2009

http://plugins.jquery.com/ содержит всевозможные плагины, как большие, так и маленькие, и будет гораздо более полным и полезным ресурсом, чем этот поток, может быть, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...