Heim  >  Artikel  >  Web-Frontend  >  Zusammenfassung gängiger jquery-Funktionen und -Methoden_jquery

Zusammenfassung gängiger jquery-Funktionen und -Methoden_jquery

WBOY
WBOYOriginal
2016-05-16 15:41:151074Durchsuche

1.delay(duration,[queueName])

Legen Sie eine Verzögerung fest, um die Ausführung nachfolgender Elemente in der Warteschlange zu verzögern.

Neu in jQuery 1.4. Wird verwendet, um die Ausführung von Funktionen in der Warteschlange zu verzögern. Es kann entweder die Ausführung der Animationswarteschlange verzögern oder in einer benutzerdefinierten Warteschlange verwendet werden.

Dauer: Verzögerungszeit, Einheit: Millisekunden

queueName: Warteschlangensubstantiv, der Standardwert ist Fx, Animationswarteschlange.

Beispiel:

Animationseffekt für verzögertes Laden von Kopf und Boden

$(document).ready(function() {
  $('#header') .css({ 'top':-50 }) .delay(1000).animate({'top': 0}, 800);
  $('#footer') .css({ 'bottom':-15 }) .delay(1000).animate({'bottom': 0}, 800); 
});

2.jQuery live(type, fn) delegierte Ereignisimplementierung

Neue Methode in Abfrage 1.3. Binden Sie einen Ereignishandler (z. B. ein Klickereignis) an alle aktuellen und zukünftigen übereinstimmenden Elemente. Es können auch benutzerdefinierte Ereignisse gebunden werden.

Unterstützt derzeit Click, Dblclick, Mousedown, Mouseup, Mousemove, Mouseover, Mouseout, Keydown, Keypress, Keyup.

Unschärfe, Fokus, MouseEnter, MouseLeave, Change, Submit

werden noch nicht unterstützt

Im Gegensatz zu bind() kann live() jeweils nur ein Ereignis binden.

Diese Methode ist der herkömmlichen Bindung sehr ähnlich. Der Unterschied besteht darin, dass durch die Verwendung von Live zum Binden von Ereignissen Ereignisse an alle aktuellen und zukünftigen Elemente auf der Seite gebunden werden (mittels Delegation). Wenn Sie beispielsweise Live verwenden, um Klickereignisse an alle Li auf der Seite zu binden. Wenn dieser Seite in Zukunft ein Li hinzugefügt wird, ist das Klickereignis dieses neu hinzugefügten Li weiterhin verfügbar. Es ist nicht erforderlich, Ereignisse erneut an dieses neu hinzugefügte Element zu binden.

.live() ist dem beliebten liveQuery-Plugin sehr ähnlich, weist jedoch die folgenden wesentlichen Unterschiede auf:

.live unterstützt derzeit nur eine Teilmenge aller Ereignisse. Die unterstützte Liste finden Sie in der Beschreibung oben.

.live unterstützt nicht die von liveQuery bereitgestellte Rückruffunktion im „ereignislosen“ Stil. .live kann nur Event-Handling-Funktionen binden.

.live verfügt nicht über „Setup“- und „Cleanup“-Prozesse. Weil alle Ereignisse delegiert und nicht direkt an Elemente gebunden sind.

Um mit Live verknüpfte Ereignisse zu entfernen, verwenden Sie bitte die Würfelmethode

Anwendungsbeispiel:

<div class=”myDiv”></div>

jquery:

$(“.myDiv”).live(“click”, function(){
alert(“clicked!”);
});

Wenn Sie Javascript verwenden, um ein Element mit der Klasse mydiv dynamisch zu erstellen, wird immer noch ein Popup angezeigt, wenn Sie auf das Element klicken. Warum passiert es nach der Live-Nutzung? Dies liegt daran, dass JQuery den Ereignis-Bubbling-Mechanismus verwendet, um das Ereignis direkt an das Dokument zu binden, und dann die Quelle des Ereignisses über event.target findet. Dies unterscheidet sich vom jquery.livequery-Plug-in. jquery.livequery prüft alle 20 Millisekunden und bindet das Ereignis erneut, wenn es ein neues gibt.

Natürlich hat die Live-Nutzung Vor- und Nachteile:

Der Vorteil besteht darin, dass bei der Aktualisierung von Elementen keine wiederholten Definitionen von Ereignissen erforderlich sind.

Der Nachteil ist: Wenn Sie das Ereignis an das Dokument binden, wird es für jedes Element auf der Seite einmal aufgerufen. Bei unsachgemäßer Verwendung wird die Leistung erheblich beeinträchtigt.

Und Unschärfe, Fokus, Mauseingabe, Mausverlassen, Ändern und Senden werden nicht unterstützt.

2. Live-gebundene Ereignisse entfernen

Verwenden Sie in JQuery Live, um Ereignisse zu binden. Wenn Sie das Ereignis entfernen möchten, verwenden Sie die Methode „die“.

Zum Beispiel:

$(“.myDiv”).die("click");

Dadurch wird das gebundene Klickereignis entfernt.

3.JQuery offset(), position()-Methode zum Erhalten absoluter und relativer Positionskoordinaten

Um die absoluten X- und Y-Koordinaten eines Elements auf der Seite zu erhalten, können Sie die Methode offset() verwenden: (Körperattribut-Einstellungsrand: 0; Polsterung: 0;)

var X = $('#DivID').offset().top; 
var Y = $('#DivID').offset().left; 

Zum Beispiel:

$(".produc a span").click(function(){
 $('body, html').animate({scrollTop:$('#buy').offset().top }, 'slow');
 });

Relative Position (übergeordnetes Element) abrufen:

var X = $('#DivID').position().top; 
var Y = $('#DivID').position().left; 
var left = $("selector").offset().left;//元素相当于窗口的左边的偏移量
var top = $("selector").offset().top;//元素相对于窗口的上边的偏移量
var pleft = $("selector").scrollLeft();//元素相对于滚动条左边的偏移量
var pTop = $("selector").scrollTop();//元素相对于滚动条顶部的偏移量

4.jquery, um die Mausposition zu erhalten

 $(function () {
      //e为事件名;
      $(document).mousemove(function (e) {
        $("p").text("X:" + e.pageX + "  Y:" + e.pageY);
      });

    });

5.jquery判断某个元素是否含有某个class,是否存在某些属性,怎样移除某些属性。

在JQuery编码中,我们会判断元素是否存在某个属性.比如是否包含 class="new" 的样式呢.JQuery判断就非常简单了,因为有 hasClass这个方法 $("input[name=new]").hasClass("new") 即可判断.

这时就没有现成的方法了. 如果存在某个属性 $("#aid").attr("rel") 会返回 rel的值,如果不存在 rel属性则会返回"undefined"
undefined 就是 undefined类型 , if($("#aid").attr("rel")=="undefined") 这个判断可能不成立.
因为类型不相同.

建议使用 if(typeof($("#aid").attr("rel"))=="undefined") 即可。

jquery移除某个jquery对象的某个属性: $(".main").removeAttr("style");

6.jquery stop()的用法(清除动画积累的有效方法)

1、stop([stopAll], [gotoEnd])方法有两个参数(当然可以不传或直传一个),其中stopAll的意思是清除之后的所有动画。gotoEnd的意思是,执行完当前动画。

2、stopAll == true时,停止队列中的所有动画, stopAll ==false时,只停止队列中的当前动画,后续动画继续执行。

3、gotoEnd == true时,立即跳到当前动画的末尾, gotoEnd ==false时,停在当前状态。且gotoEnd只有在设置了stopAll的时候才起作用

4、在项目中,如果不进行动画队列清理,就会产生动画积累的问题。因此在写入动画时,最好先清除队列中的重复动画。

在项目中,例如做下拉二级导航效果,用到jquery的slideDown()与slideUp()方法,当鼠标快速晃动后,如果不进行动画队列清理,就会产生动画积累,出现问题。

例如:

$(".nav li.has_list").hover(function(){
  $(this).children("a").addClass("curr");
  $(".nav li.has_list").children("div").stop(false,true);
  $(this).children("div").slideDown(400).end();              
},function(){
  $(this).children("a").removeClass("curr");
  $(".nav li.has_list").children("div").stop(false,true);
  $(this).children("div").slideUp(400).end();
  }
);

以上内容就是本文关于jquery常用函数与方法汇总,希望大家喜欢。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn