24 Ağu '12 Güncellemesi : jQuery 1.8'de, öğesini kullanarak öğenin etkinliklerine erişmek artık mümkün değildir .data('events'). (Ayrıntılar için bu hataya bakın.) Aynı verilere jQuery._data(elem, 'events'), belgelenmemiş ve bu nedenle% 100 kararlı kalması garanti edilmeyen dahili bir veri yapısı ile erişmek mümkündür . Bununla birlikte, bu bir sorun olmamalıdır ve yukarıdaki eklenti kodunun ilgili satırı aşağıdaki şekilde değiştirilebilir:
var data = jQuery._data(this[0], 'events')[type];
jQuery olayları, burada eventsarama yapabilmeniz için adı verilen bir veri nesnesinde saklanır :
var button = $('#myButton');
if (-1 !== $.inArray(onButtonClicked, button.data('events').click)) {
button.click(onButtonClicked);
}
En iyisi, uygulamanızı bu kod yalnızca bir kez çağrılacak şekilde yapılandırabilmenizdir.
Bu bir eklenti içine alınabilir:
$.fn.isBound = function(type, fn) {
var data = this.data('events')[type];
if (data === undefined || data.length === 0) {
return false;
}
return (-1 !== $.inArray(fn, data));
};
Daha sonra arayabilirsin:
var button = $('#myButton');
if (!button.isBound('click', onButtonClicked)) {
button.click(onButtonClicked);
}