2016-04-14 8 views
0

Ich habe eine Menge von verschachtelten divs innen zusammen:jQuery Funktion erben nicht von den Eltern

<div id="container_anatomy"> 
     <div id = "container_anatomy_painted"> 
      <div id="example"> Item1</div> 
      <div id="example"> Item2</div> 
      <div id="example"> Item3</div> 
     </div> 
</div> 

Ich möchte nur die äußere div "anatomy_part" und "container_anatomy_painted" Ziehbare mit dieser Funktion machen:

var clicked = false, 
    clickX; 
$('#container_anatomy_painted').on({ 
    'mousemove': function(e) { 
    clicked && updateScrollPos(e); 
    }, 
    'mousedown': function(e) { 
    clicked = true; 
    clickX = e.pageX; 
    clickY = e.pageY; 

    last_x = $('#container_wrapper_anatomy').scrollLeft(); 
    last_y = $('#container_wrapper_anatomy').scrollTop(); 
    event.preventDefault(); 
    }, 
}); 

Aber gerade jetzt sind auch die "Beispiel" -Artikel beweglich. Gibt es eine Möglichkeit, die geschachtelten divs nicht die gleiche jquery-Funktion zu erben? So kann ich nur "mousemove" auf der "container_anatomy_painted".

+3

Mit dieser Funktion geben Sie Alpträume in Zukunft nutzen. Gehen Sie mit Bibliotheken wie jQuery UI: https://jqueryui.com/draggable/ – Roy

+0

"anatomy_part"? soll das etwas bedeuten? Sie haben dort auch eine Anzahl nicht definierter Variablen. –

+0

Mehrere 'id = "example" 'macht dieses Markup ungültig und führt zu unerwarteten Ergebnissen. https://www.w3.org/TR/html4/struct/global.html#h-7.5.2 und https://www.w3.org/TR/WCAG20-TECHS/H93.html –

Antwort

0

Sie den Kind divs und innerhalb dieser bind binden konnte event.stopPropagation();