2009-01-11 9 views
12

In einem ähnlichen eitel zum C# Erweiterung Thema auf SO Es wäre toll, wenn wir eine ganze Reihe von nützlichen jQuery Funktionserweiterungen zusammenziehen könnte.Veröffentlichen Sie Ihre kurze Erweiterung Funktionen Goodies für jQuery

Bitte beachten Sie die Idee ist kurz Code-Schnipsel nicht ausgewachsenen bekannten Plugins oder ui Widgets

+0

Die Struktur der Website ist so, dass mit richtigen Tags und Titeln, eine spezifische Frage und Antwort für eine bestimmte Suche gefunden werden kann. Wenn ich ein Logging-Plugin brauche, suche ich nicht nach "[jquery] extension goodies", ich suche nach "[jquery-plugin] logging" ... oder durchsuche das jQuery Plugin-Repository. – Shog9

+0

lustig, wie dies 3000 Ansichten dann http://stackoverflow.com/questions/271398/post-your-extension-goodies-for-c-net-codeplex-com-extensionoverflow bekommen hat. – redsquare

+0

Shog - das hat sich zu einem vollen Projekt entwickelt, also denke ich, dass du von diesem hohen Barsch runterspringen musst, von dem du glaubst, dass du dran bist. – redsquare

Antwort

10
// 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; 
}; 
+1

sollte es nicht 'if (window.console)' sein? –

+0

Ich denke, das ist für firefox/firebug (console.log) – Rob

+0

gedacht der Autor dieses Schnipsel ist Dominic Mitchell. http://ajaxian.com/archives/jquery-logging http://happygiraffe.net/blog/2007/09/26/jquery-logging/ – Olivvv

1

Der validation Plug-in ist genial zu haben. Benutzte es in einer ASP.NET MVC-App, um Sachen auf dem Client mit ajax dynamisch zu validieren ... gab sogar benutzerdefinierte Fehlermeldungen zurück, die auf den Benutzereingaben basierten ... sehr cool.

0

http://plugins.jquery.com/ hostet alle Arten von Plugins, große und kleine, und wird eine viel umfassendere und nützliche Ressource als dieser Thread jemals sein könnte, sorry.

+0

Hier geht es nicht um vollständige Plugins für Widgets, es sind kurze Snippets von jquery. – redsquare

+0

haha ​​nun, es ist jetzt, dass Sie die Frage bearbeitet haben! – nickf

+2

nein, habe ich lange vor deinem Kommentar – redsquare

-2

Nur eine Verknüpfung zum Abrufen/Festlegen der ID eines Elements.

(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); 

Es ist jID auf der jQuery-Plugins-Website.

+1

über abstrahierte IMO. Was ist los mit: '$ .fn.id = function() {return arguments.length> 0? This.attr ('id', argumente [0]): this.attr ('id'); }; ' – gnarf

4

Sie können dies verwenden, um zu sehen, ob ein Selektor existiert.

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

$.exists = function(selector) { 
    return ($(selector).length); 
} 
0

ah Ich bin ein bisschen weg von der ursprünglichen Frage, aber wenn es der "get/set einer id" Schnipsel, dann habe ich einigen Code eindeutige IDs zu erstellen:

$.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; 
} 
1

Schnelle und einfache AJAX:

Die folgenden können Sie Anker wie

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

, die eine AJAX-Abfrage für die URL href ausführen und das Ergebnis in das erste Element einbetten, das vom Selektor im Attribut rel des Ankers definiert wird.

// 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(); 
    } 
); 
4

Interpretiert absolute URLs auf der Seite als externe Links und stellt sie einen neuen Tab zu öffnen, in und freundliche Titel & Klasse für spezielle Styling zu haben.

0

Erweitern von Selektoren, d. H. Schreiben eigener benutzerdefinierter Selektoren. Hier ist ein Beispiel für zwei:

Verwandte Themen