.off()

.off() Dönen Değer : jQuery Nesnesi
Açıklama : Bir olay işleyiciyi iptal eder.

.off()
Bu şekil kullanımda parametre yoktur.
.off( event )
event
Tip : Olay
Bir jQuery.Event nesnesi.
.off( events [, selector ] )
events
Tip : Düz Nesne
Key değerinde bir ya da boşlukla yarılmış birden fazla olay adı olan ve value değerinde daha önce bağlanmış olay işleyicileri içeren nesne.
selector
Tip : String
Olaylar bağlanırken .on() metodu ile verilen seçici deyimin aynısını içerir.
.off( events [, selector ] [, handler ] )
events
Tip : String
Bir ya da daha fazla sayıda boşlukla ayrılmış şekilde olay isimleri, başlarında namespace olabileceği gibi sadece namespace de olabilir. "click", "keydown.myPlugin", veya ".myPlugin" gibi.
selector
Tip : String
Olaylar bağlanırken .on() metodu ile verilen seçici deyimin aynısını içerir.
handler
Tip : Fonksiyon( Olay eventObject )
Daha önce olay(lar)a bağlanmış olan olay işleyici fonksiyon ya da özel değer olarak false.


.off() metodu daha önce .on() metodu ile bağlanmış olay işleyicileri iptal etmek için kullanılır. Ayrıntıları görmek için aşağıda verilecek örneklere göz atınız. .off() metodunu parametresiz çağırmak seçili olan elemanlardaki tüm olay işleyicileri iptal eder. Sadece birini iptal etmek için olay adı, namespace, selector ya da handler fonksiyon adını vermelisiniz. Birçok filtreleme parametresi verildiyse olay işleyici verilen tüm parametreler ile eşleşmelidir.

Eğer "click" gibi sadece olay adı verilmişse seçili elemanlardaki tüm o isimdeki olaylar (direk veya delegasyon ile verilen) iptal edilir. Karmaşık kodlar yazarken iptal edilecek işleyiciler için namespace kullanmanız, sizin kodunuzun başka yerlerdeki olayları da iptal etmesini engeller. Bir namespace'e bağlı tüm olaylar ".myPlugin" gibi sadece namespace adı verilerek iptal edilebilir. En azından bir namespace ya da olay adı verilmelidir.

Delegasyonla bağlanmış bir olayı iptal için selector parametresi kullanın. Bu seçici .on() metodunda kullandığınızın aynısı olmalıdır. Tüm delegasyon yoluyla tanımlanan olayları iptal için "**" değerini kullanın, bu delegasyon olmadan tanımlanan olayları iptal etmeyecektir.

Bir olay işleyici handler parametresinde fonksiyonun adını girerek de iptal edilebilir.


Örnekler:

Renkli butona olay ekle ve iptal et.

<style>
   button {
      margin: 5px;
   }
   button#theone {
      color: red;
      background: yellow;
   }
</style>
<button id="theone">Does nothing...</button>
<button id="bind">Add Click</button>
<button id="unbind">Remove Click</button>
<div style="display:none;">Click!</div>
<script>
   function flash() {
      $( "div" ).show().fadeOut( "slow" );
   }
   $( "#bind" ).on( "click", function() {
      $( "body" )
         .on( "click", "#theone", flash )
         .find( "#theone" )
            .text( "Can Click!" );
   });
   $( "#unbind" ).on( "click", function() {
      $( "body" )
         .off( "click", "#theone", flash )
         .find( "#theone" )
            .text( "Does nothing..." );
   });
</script>
Click!

Tüm paragraflardan tüm olay işleyicileri kaldır.

$( "p" ).off();

Tüm paragraflardan delegasyonla gelen tüm "click" olayı işleyicileri kaldır.

$( "p" ).off( "click", "**" );

Üçüncü parametrede vererek daha önce bağlanmış bir olay işleyiciyi iptal et.

var foo = function() {
  // Olay işleyen kod
};
 
// ... Şimdi paragraflar tıklanınca foo çağrılacak ...
$( "body" ).on( "click", "p", foo );
 
// ... Foo bir daha çağrılamayacak.
$( "body" ).off( "click", "p", foo );

Delegasyonla verilmiş tüm olayları namespace yoluyla iptal etmek.

var validate = function() {
  // Forma girilen değerleri kontrol et
};
 
// Olayları ".validator" namespace altında bağla
$( "form" ).on( "click.validator", "button", validate );
 
$( "form" ).on( "keypress.validator", "input[type='text']", validate );
 
// ".validator" namespace altındaki tüm olayları iptal et
$( "form" ).off( ".validator" );

.

.