2011-01-29 5 views
6

मुझे <input type="checkbox" id="check1" /> मिल गया है। इस चेकबॉक्स के लिए change ईवेंट कैसे पकड़ें यदि इसे स्क्रिप्ट i.e. $('#check1').attr('checked', 'checked'); से बदला गया था?jQuery: इनपुट से परिवर्तन ईवेंट को कैसे पकड़ें [type = 'checkbox'] अगर इसे प्रोग्रामेटिक रूप से चेक किया गया हो?

धन्यवाद। घटनाओं की अनंत लूप को रोकने के लिए - -

उत्तर

5

जावास्क्रिप्ट कार्यक्रम संबंधी परिवर्तन के आधार पर तत्वों के रूप में की घटनाओं आग नहीं करता है तो आप दो (से कम आदर्श) विकल्प हैं:

  • एक आवरण समारोह जिन परिवर्तनों लिखें विशेषता और अपने कॉलबैक कहता है, और फिर अपने आप को हमेशा अपने आवरण समारोह का उपयोग करने के लिए मजबूर
  • बस कॉलबैक खुद जब आप विशेषता
+2

यदि * आपने * चेकबॉक्स को प्रोगामैटिक रूप से बदल दिया है, तो आप स्वयं परिवर्तन ईवेंट को ट्रिगर कर सकते हैं। उदा।, $ ("# Mycheckbox")। प्रोप ("चेक", सत्य) .trigger ("बदलें")। – Steve11235

1

बदलने फोन मैं कि क्या यो यकीन नहीं है आप this

+1

वास्तव में नहीं। मैं उम्मीद कर रहा हूं कि कोड '$ ('# check1') निष्पादन। Attr ('चेक', 'चेक किया गया'); उस चेकबॉक्स के लिए 'परिवर्तन' परिवर्तन() 'ईवेंट होगा। – SaltLake

-1

This हो सकता है कि आप जो खोज रहे थे वह हो सकता है।

$(document).ready(function(){   
    $('#check1').click(function(){ 
     var n = $("#check1:checked").length; 
     alert(n); 
    }); 
}); 
संबंधित मुद्दे