javascript - getting wrong target object in ng-click -
html कोड
& lt; div ng- click = "sortOrder ($ event, पूर्णनाम ') "वर्ग =" कर्नल- xs-2 sortable asc "& gt; & LT; अवधि & gt; नाम से & lt; / span & gt; & Lt; / div & gt; यहां जेएस कोड है
$ scope.sortOrder = function (ईवेंट, नाम) {var $ elem = $ (event.target); var c = $ elem.hasClass ('desc')? 'एसीसी': 'एड्स'; $ Elem.removeClass ('asc desc')। AddClass (सी); }
टेक्स्ट "itemprop =" text "> इसके बजाय currentTarget का उपयोग करें: var $ elem = $ (event.currentTarget); वर्तमान लक्ष्य पर ईवेंट श्रोता बनने वाला तत्व है, लक्ष्य तत्व को ट्रिगर करने वाला तत्व है।
इसका अर्थ है कि यदि आप अवधि लक्ष्य अवधि होगी और यदि आप div पर क्लिक करेंगे तो लक्ष्य div हो जाएगा लेकिन दोनों मामलों में currentTarget div हो जाएगा। एक और आसान समाधान के बजाय ng-class का उपयोग करना है। HTML :
& lt; div ng-click = "changeSortOrder ()" class = "col-xs-2 sortable" एनजी-वर्ग = "सॉर्ट ओर्डर" & gt; & LT; अवधि & gt; नाम से & lt; / span & gt; & Lt; / div & gt; जेएस:
$ scope.sortOrder = 'asc'; $ scope.changeSortOrder = फ़ंक्शन () {$ scope.sortOrder = $ scope.sortOrder === 'एस्क'? 'Desc': 'एसीसी'; }; डेमो : आपके तर्क के साथ उदाहरण निर्देश में चला गया:
जेएस:
एप दि डायरेक्टिव ('माइसोर्ट', फंक्शन () {रिटर्न: स्कोप: सच्चा, लिंक: फंक्शन (स्कोप, एलीमेंट) {var डिफ़ॉल्टSortOrder = 'asc'; element.addClass (defaultSortOrder); var परिवर्तनसॉर्टऑर्डर = फ़ंक्शन ) {Var newOrder = element.hasClass ('asc')? 'Desc': 'asc'; element.removeClass ('asc desc')। AddClass (नया ऑर्डर);}; element.on ('click', changeSortOrder); दायरा। $ ('$ नष्ट', फ़ंक्शन () {element.off ('click', changeSortOrder);});}}}); HTML:
& lt; div class = "col-xs-2 sortable" my-sort & gt; & Lt; span & gt; तत्व 1 & lt; / span & gt; & Lt; / div & gt; & Lt; div class = "col-xs-2 sortable" my-sort & gt; & Lt; span & gt; एलिमेंट 2 & lt; / span & gt; & Lt; / div & gt; & Lt; div class = "col-xs-2 sortable" my-sort & gt; & Lt; span & gt; तत्व 3 & lt; / span & gt; & Lt; / div & gt; डेमो :
Comments
Post a Comment