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

मैं बाइंड कैसे सेट कर सकता हूं ताकि जब भी अप्रेडिड्स बदल जाए तो मैं कोई फ़ंक्शन चला सकता हूं?jQuery डेटा को बांधने के लिए कैसे बाध्य करें?

धन्यवाद

उत्तर

4

jQuery में 1.4.4+ एक घटना triggered for this, changeData है।

$('#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

बहुत बढ़िया - मैं 1.4.4 में इस अतिरिक्त से अनजान था! खुशखबरी। – gnarf

+0

+1 इसे इंगित करने के लिए +1। – karim79

0

हाँ वहाँ एक समारोह घड़ी object.watch लेकिन इसकी मानक नहीं, मैं अपने यहां पाया जा सकता Object.watch() for all browsers?

1

मैं कल्पना तुम कर सकते हो जो खोज लगता है कहा जाता है कि एक साधारण प्लगइन के साथ:

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

:

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

डेमो: http://jsfiddle.net/karim79/q6apA/1/

+0

यह सुनिश्चित नहीं है कि यहां क्या हो रहा है? – AnApprentice

+0

@AnApprentice - जैसा कि, डेटा लिखने के समय कुछ विधि लागू करें (और '.data' के बजाय' .dataTrigger' का उपयोग करके)। मुझे उम्मीद है कि मैं आपका क्यू समझ गया :) – karim79

संबंधित मुद्दे