2011-08-11 14 views
7

Powiel możliwe:
jQuery equivalent of JavaScript's addEventListener methodaddEventListener w jQuery

także z bardzo dobrego tutoriala jQuery na: http://itunes.apple.com/in/app/designmobileweb/id486198804?mt=8

Co to jest równoważne jQuery dla następującego oświadczenia;

element1.addEventListener('click',doSomething2,false) 

Jeśli jest to metoda bind(), jest jakaś opcja, aby określić ostatni parametr (czyli propagacji zdarzenia lub przechwytywania ... prawda/fałsz)

Dziękuję.

+0

Tak, 3rd parametrem 'bind' mogą nadal być stosowane w tym celu: http://api.jquery.com/bind/ –

+1

' false 'jest ustawieniem domyślnym dla wszystkich procedur obsługi zdarzeń, ponieważ IE nie obsługuje wyzwalania programu obsługi w fazie przechwytywania. W jQuery nie ma możliwości ustawienia go na "true". –

+0

@ James: Myślę, że źle zrozumiałeś trzeci parametr. Jest to albo funkcja, albo "fałsz", ale "fałsz" w tym przypadku oznacza: * Ustawienie trzeciego argumentu na fałsz spowoduje dołączenie funkcji, która uniemożliwi wystąpienie domyślnej akcji i zatrzyma wydarzenie od bulgotania. *. –

Odpowiedz

11

Spróbuj

// Setting the third argument to false will attach a function 
// that prevents the default action from occurring and 
// stops the event from bubbling. 
$("#element1").bind("click", doSomething2, false); 
+1

To prawda, warto wspomnieć, że została dodana tylko od wersji 1.4.3 –

+0

To nie jest odpowiednik trzeciego parametru addEventListener. Jest to skrót do 'function() {return false; } '. Wywołanie, jakie napisałeś, potraktuje "doSomething2" jako dane zdarzenia (i prawdopodobnie spowoduje błąd). –

+0

@Felix - Zgadzam się z Tobą, ale OP chciał czegoś takiego, aby zapobiec przepełnieniu zdarzenia przez przekazanie parametru. – ShankarSangoli

0

użytku jquerys bind method

przykład:

document.bind("custom-listener", someCustomFunction, false); 

document.trigger("custom-listener", {jsonArgsKey:jsonValue}); 

function someCustomFunction(json) 
{ 
alert(json.jsonArgsKey); 
} 
+0

Zapomniałeś swojej funkcji '$'! Czy nie masz na myśli '$ (document) .indd ...' etc.? – Abraham

0

Jak to:

$(element1).click(doSomething) 

Jeśli chcesz zatrzymać propagacji, zadzwoń event.stopPropagation() w funkcji doSomething, tak:

function doSomething (event){ 
    event.stopPropagation() 
    // do whatever 
} 

Nie ma jednak sposobu na skonfigurowanie przechwytywania programu obsługi zdarzeń za pomocą jQuery.

1

Tak, jestem całkiem pewny. Bind() będzie działać tak, jak tego potrzebujesz. Sprawdź numer jQuery .bind() docs page. Jestem pewien, że możesz ustalić konfigurację. kod demo poniżej:

$(document).ready(function() { 
    $("#element1").bind('click', function() { 
     // do something on click 
    } 
}); 
+2

Zapomniałeś o nawiasie! – Abraham

Powiązane problemy