J'écris une implémentation de liste triable dans jQuery (à propos du fameux problème scroll-in-div, de nouvelles solutions pour cela?). Cependant, je ne sais pas comment comparer les éléments (déclenchés par mousedown/mouseup) une fois qu’ils ont été enveloppés dans jQuery. En prototype, c'était toujours ele.domNode.
C'est ce que j'essaie d'accomplir en substance ...
<div id="cheese"></div>
<div id="burger"></div>
<script>
// Some dom nodes wrapped in jquery
var ele1 = $('#cheese');
var ele2 = $('#burger');
var ele3 = $('#burger');
// Is the dom node wrapped in ele1 (#cheese) the same as in ele2 (#burger)?
if (ele1 == ele2)
{
// Should never be true
}
// Is the dom node wrapped in ele2 (#burger) the same as in el32 (#burger)?
if (ele2 == ele3)
{
// Should always be true
}
</script>
Un objet jQuery peut être traité comme un tableau d'éléments DOM bruts.
Vous pouvez comparer les éléments bruts du DOM comme ceci:
if(ele2[0] === ele3[0])
Comparez les éléments DOM à l'intérieur comme ceci:
if (ele1.get(0) == ele2.get(0))
C'est aussi un moyen possible de résoudre ce problème. Vous pouvez comparer les attributs id car ils devraient être exactement les mêmes dans votre exemple ci-dessus.
ele1.attr("id") == ele2.attr("id"); //returns false
ele2.attr("id") == ele3.attr("id"); //returns true