Javascript tarafında oldukça fazla event ( olay ) var. JQuery ile birleştiğinde daha da fazla eventlara hatta özelleştirilmişlere dahi sahip olabiliyorsunuz. Bir projede form hazırlarken div nesnesinin show / hide durumuna göre başka bir nesnenin işlenmesi gerekiyordu. Ufak bir araştırma sonucu herhangi bir nesnenin – sadece div değil – show / hide durumlarına göre event atayabileceğimi buldum.
Aşağıdaki kod ile bu event ın tanımlamasını yapıyoruz
( function ( $ ) { $.each([ 'show' , 'hide' ], function (i, ev) { var el = $.fn[ ev ]; $.fn[ ev ] = function () { this .trigger( ev ); return el.apply( this , arguments ); }; }); })(jQuery); |
Örnek kullanım;
$( 'div' ).on( 'show' , function () { $( 'span' ).html( 'div gösterim durumu açık' ); }); $( 'div' ).on( 'hide' , function () { $( 'span' ).html( 'div gösterim durumu kapalı' ); }); |
Siz div veya kendi class / id her neyse artık $( ‘div’ ).show(); veya $( ‘div’ ).hide(); yaptığınızda span nesnesi içerisinde durumunu açıklayan yazıyı yazacak. Bu ihtiyaç bizim için sekmeli form işlemi yaparken verilen cevaplara göre bir sonraki sorunun ( her bir soru bir div içerisinde yapı olarak yer alıyor ) hangisi olacağını belirliyordu. Basit bir işlem için bu şekilde bir kullanıma gerek kalmayabilir fakat hareket güzel.
Denemedim fakat event ataması yapılırken each ile birlikte show / hide belirteci yapılırken farklı eventlar üzerinden event türetimi yapılabilir sanırım.