1.delay(duration,[queueName])
Définissez un délai pour retarder l'exécution des éléments suivants dans la file d'attente.
Nouveau dans jQuery 1.4. Utilisé pour retarder l'exécution des fonctions dans la file d'attente. Il peut soit retarder l'exécution de la file d'attente d'animation, soit être utilisé dans une file d'attente personnalisée.
durée : temps de retard, unité : millisecondes
queueName : nom de file d'attente, la valeur par défaut est Fx, file d'attente d'animation.
Exemple :
Effet d'animation à chargement retardé en tête et en bas
$(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) implémentation d'événement délégué
Nouvelle méthode dans la requête 1.3. Liez un gestionnaire d'événements (tel qu'un événement click) à tous les éléments correspondants actuels et futurs. Les événements personnalisés peuvent également être liés.
Prend actuellement en charge les clics, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup.
Flou, focus, mouseenter, mouseleave, change, submit
ne sont pas encore pris en chargeDifférent de bind(), live() ne peut lier qu'un seul événement à la fois.
Cette méthode est très similaire à la liaison traditionnelle. La différence est que l'utilisation de live pour lier des événements liera les événements à tous les éléments actuels et futurs de la page (en utilisant la délégation). Par exemple, si vous utilisez live pour lier les événements de clic à tous les li de la page. Ensuite, lorsqu'un li sera ajouté à cette page ultérieurement, l'événement click de ce li nouvellement ajouté est toujours disponible. Il n'est pas nécessaire de lier à nouveau les événements à cet élément nouvellement ajouté.
.live() est très similaire au plugin liveQuery populaire, mais présente les différences majeures suivantes :
.live ne prend actuellement en charge qu'un sous-ensemble de tous les événements. Veuillez vous référer à la description ci-dessus pour la liste prise en charge.
.live ne prend pas en charge la fonction de rappel de style « sans événement » fournie par liveQuery. .live ne peut lier que des fonctions de gestion d'événements.
.live n'a pas de processus de « configuration » et de « nettoyage ». Parce que tous les événements sont délégués plutôt que directement liés aux éléments.
Pour supprimer les événements liés au live, veuillez utiliser la méthode die
Exemple d'utilisation :
<div class=”myDiv”></div>
jquery :
$(“.myDiv”).live(“click”, function(){ alert(“clicked!”); });
Si vous utilisez javascript pour créer dynamiquement un élément avec la classe mydiv, une pop-up apparaîtra toujours lorsque vous cliquerez sur l'élément. Pourquoi cela se produit-il après avoir utilisé Live ? En effet, jquery utilise le mécanisme de diffusion d'événements pour lier directement l'événement au document, puis trouve la source de l'événement via event.target. Ceci est différent du plug-in jquery.livequery. jquery.livequery vérifie toutes les 20 millisecondes et relie l'événement s'il y en a un nouveau.
Bien sûr, il y a des avantages et des inconvénients à utiliser le live :
L'avantage est le suivant : il n'est pas nécessaire de définir des événements à plusieurs reprises lorsque les éléments sont mis à jour.
L'inconvénient est que la liaison de l'événement au document l'appellera une fois pour chaque élément de la page. S'il est mal utilisé, cela affectera sérieusement les performances.
Et il ne prend pas en charge le flou, la mise au point, la saisie de la souris, le retrait de la souris, le changement, la soumission.
2. Supprimer les événements liés au direct
Dans Jquery, utilisez live pour lier des événements. Si vous souhaitez supprimer l'événement, utilisez la méthode die.
Par exemple :
$(“.myDiv”).die("click");
Cela supprimera l'événement de clic lié.
3.JQuery offset(), méthode position() pour obtenir les coordonnées de position absolues et relatives
Pour obtenir les coordonnées absolues X, Y d'un élément sur la page, vous pouvez utiliser la méthode offset() : (marge de réglage de l'attribut body : 0 ; padding : 0 ;)
var X = $('#DivID').offset().top; var Y = $('#DivID').offset().left;
Par exemple :
$(".produc a span").click(function(){ $('body, html').animate({scrollTop:$('#buy').offset().top }, 'slow'); });
Obtenir la position relative (élément parent) :
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 pour obtenir la position de la souris
$(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常用函数与方法汇总,希望大家喜欢。