2016-09-02 2 views
2

ist Ich mache das fromEvent beim Klicken von einer Observablen, aber ich möchte das Datenattribut von dem Element erhalten, das das Ereignis gegeben hat. Ich habe versucht, dies von innen ohne Erfolg zu verwenden. Wie kann ich den normalen 'this' von jquery hatKann ich 'dieses' Element von rxjs beobachtbar bekommen, wenn die Quelle eine Klasse

var elem = $(".someElementClass"); 
var source = Rx.Observable.fromEvent(elem, 'click'); 
var subscription = source.subscribe(function (e) { 
var x = $(this).attr("data-toget"); 
alert(x); 
}); 

Antwort

1

this innerhalb Rückruf erreichen nicht zu jQuery Objekt beziehen, wie zum Beispiel in $.each., In diesem Fall, dass Sie $(e.currentTarget) statt $(this)

var elem = $(".someElementClass"); 
 
var source = Rx.Observable.fromEvent(elem, 'click'); 
 
var subscription = source.subscribe(function (e) { 
 
    console.log($(e.currentTarget).attr("data-toget")); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<script src="https://npmcdn.com/@reactivex/[email protected]/dist/global/Rx.umd.js"></script> 
 
<button class="someElementClass" data-toget="100">Button-1</button> 
 
<button class="someElementClass" data-toget="200">Button-2</button> 
 
<button class="someElementClass" data-toget="300">Button-3</button>
verwenden können

+1

Genau das, was ich brauchte, kann nicht upvote seit ist neues Konto. –

Verwandte Themen