Existe-t-il une méthode pour détecter le changement de valeur de gauche de l'attribut de style? J'ai un div qui a une valeur gauche de style en ligne et la valeur change constamment et je veux détecter ce changement.

$("#catalog > div:last-child").children() me donne ce div

[<div style=​"display:​ block;​ position:​ relative;​ padding:​ 0px;​ margin:​ 0px;​ white-space:​ nowrap;​ height:​ 100%;​ left:​ -1641.14px;​">​…​</div>​]

La valeur de gauche change continuellement et je veux détecter le changement.

P.S. Ce div n'a aucun dividende et je ne peux accéder à ce div qu'en utilisant $("#catalog > div:last-child").children(). Je travaille pour une entreprise et nous avons un outil HTML5 qui crée une annonce de catalogue simple et toutes les divs sont générées dynamiquement.

1
Owais Ahmed 13 juil. 2015 à 07:39

2 réponses

Meilleure réponse

Vous pouvez obtenir la valeur left en utilisant $(element).css('left'). Si vous voulez connaître le changement de gauche, prenez une variable globale et comparez les valeurs précédentes et actuelles, si celles-ci sont différentes, appelez votre fonction. Cette fonction sera en boucle infinie.

Exemple:

 var preLeft=0, element = $("#catalog > div:last-child").children(), timer = 200; // You can change based on your requirement
 setInterval(function(){
     if($(element).css('left') != preLeft){
        //your function
        preLeft   = $(element).css('left');
     }
 },200);
1
Anil Talla 13 juil. 2015 à 04:59

Si vous avez actuellement sélectionné l'élément, vous pouvez utiliser la méthode .css ().

    $("#catalog > div:last-child").children().css('left');

Puisque vous souhaitez vérifier en permanence la valeur, cette solution dépend de la fréquence à laquelle la fonction dans laquelle elle se trouve s'exécutera.

0
MPawlak 13 juil. 2015 à 04:55