2010-12-27 1 views
5
<div id="conversations-uCount">0</div> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#conversations-uCount').data('UnreadIDs', '1'); 
}); 
</script> 

Jak ustawić powiązanie, aby za każdym razem, gdy zmienił się numer UnreadID Czy mogę uruchomić funkcję?jQuery jak powiązać wiązanie danych?

Dzięki

Odpowiedz

4

W jQuery 1.4.4+ jest zdarzenie triggered for this, changeData. Jeśli to tylko dane masz do czynienia z na obiekcie, twój obsługi jest tak proste, jak:

$('#conversations-uCount').bind("changeData", function() { 
    //data changed, do something, for example: 
    alert("Data changed!, new value for UnreadIDs: " + $.data(this, 'UnreadIDs')); 
}); 

You can test it out here.

+0

Awesome - Byłem nieświadomy tego dodatku w 1.4.4! Dobre wieści. – gnarf

+0

+1 za wskazanie tego. – karim79

1

sobie wyobrazić, można to zrobić w prosty plugin:

$.fn.dataTrigger = function(name, value, callback) { 
    $(this).data(name, value); 
    callback(name, value); 
    return this; 
}; 

Następnie:

$('#conversations-uCount').dataTrigger('UnreadIDs', '1', myFunc); 

Demo: http://jsfiddle.net/karim79/q6apA/1/

+0

Nie wiesz, co się tutaj dzieje? – AnApprentice

+0

@AnApprentice - jak w, zastosuj pewną metodę w momencie zapisywania danych (i używając '.dataTrigger' zamiast' .data'). Mam nadzieję, że zrozumiałem twoje Q :) – karim79