IM Przesyłanie mojej aplikacji internetowej do Bootstrap, ale napotkałem następny problem.

Imprezy na ("kliknij") zdarzenia nie przekazują żadnego kontekstu ani źródła zdarzenia do funkcji wypalania.

$('#'+target+'_HID.box.flipped:visible a').click(function(e){
        console.log('otroclick',e,this)
    })

Zapiera komunikat konsolowy.log, ale e i te kamery puste i przed przyciskiem bootstrap wydarzenia przyszły dość normalnie. Przed linkami były przyciski, ale to samo się stało.

1
Freaktor 4 grudzień 2013, 21:36

2 odpowiedzi

Najlepsza odpowiedź

Zakładam, że chcesz wartość this w przewodzie, aby był taki sam jak wartość this kodu, która ustawia wydarzenie? Jeśli tak, możesz osiągnąć to łatwo z bind. Bind umożliwia wstępnie ustawianie wartości this funkcji (a także ewentualnie parametrów curry).

$('#'+target+'_HID.box.flipped:visible a').click(function(e){
        console.log('otroclick',e,this)
}.bind(this));

Spowoduje to ustawienie wartości obsługi this do bieżącego wartości this.

I jak wszystkie ładne rzeczy, bind nie jest obsługiwane w IE8, więc będziesz chciał złapać nacisk z Tutaj Jeśli chcesz obsługiwać ten stos.

1
Adam Rackis 4 grudzień 2013, 17:45

To działa dobrze, przetestowałem to

$( "#target" ).click({a:5}, function(evt) {
  console.log( "------------" );
  console.log( this, evt );
  console.log( evt.data );
});

Możesz to sprawdzić http://api.jquery.com/vishible-selector/

Być może będziesz musiał zaktualizować jQuery

0
Saad Ahmed 4 grudzień 2013, 18:01