2010-12-31 15 views
18

जैसा कि मैं रेल 3 jquery-ujs कोड को देखता हूं, मुझे लगता है कि यह कस्टम जावास्क्रिप्ट ईवेंट (submit.rails, click.rails, आदि) से जुड़ा हुआ है। क्या किसी को पता है कि इन कस्टम '.rails' घटनाओं को परिभाषित किया गया है? मैं बस बेहतर समझने की कोशिश कर रहा हूं कि रेल 3 में यूजेएस सामान कैसे काम करता है, इसलिए मैं इसे अधिक प्रभावी ढंग से उपयोग कर सकता हूं ...रेल 3 कस्टम जावास्क्रिप्ट घटनाओं को परिभाषित किया गया है?

+0

ब्रायन, कृपया अपने संदेशों पर हस्ताक्षर करना बंद करें - यह स्टैक ओवरफ्लो नीतियों का उल्लंघन है। धन्यवाद! – sethvargo

+0

ओह, क्षमा करें! करेंगे (या नहीं और :) :)। मुझे बताने के लिए धन्यवाद। – Bryan

उत्तर

19

ये namespaced events हैं। उनके लिए कोई परिभाषा नहीं है; click.railsclick जैसा ही है, लेकिन क्योंकि इसे rails के साथ नामित किया गया है, तो आप किसी तत्व पर click ईवेंटों को आमंत्रित किए बिना रेल-विशिष्ट ईवेंट हैंडलर को अनबाइंड या ट्रिगर कर सकते हैं।

उदाहरण के लिए, मान लें कि आपके कुछ तत्व, <div class='foo' data-remote='true'> है, और rails.js बांधता

$("*[data-remote='true']").bind("click.rails", function() { ... }) 

अपने कोड में, आप भी है:

$(".foo").click(function() { ... }); 

अब, रेल आह्वान करने के लिए चाहते हो सकता है उस बिंदु पर रिमोट हैंडलर, लेकिन अगर इसे $(this).click() कहा जाता है, तो यह आपके कस्टम एक सहित आइटम पर सभी क्लिक हैंडलर का आह्वान करेगा, जो अवांछित व्यवहार उत्पन्न कर सकता है। इसके बजाए, यह $(this).trigger('click.rails') पर कॉल कर सकता है, और परिभाषित केवल क्लिक हैंडलर ही चलाया जाएगा।

+0

बिल्कुल सही ... यह इंगित करते हुए कि वे नामित घटनाएं स्पष्ट रूप से चीजों को स्पष्ट करने में मदद करती हैं। धन्यवाद क्रिस! – Bryan

+0

ठीक है, लेकिन प्रतीक्षा करें ... तो '* .rails' घटनाएं कहां ट्रिगर हुईं? मैं उन्हें jquery-ujs में नहीं देखता ... – Bryan

+0

वे नियमित घटनाओं के साथ-साथ किसी भी .rails घटनाओं से ट्रिगर होते हैं। यह केवल तभी होता है जब आप केवल ड्रिल हैंडलर के साथ कुछ विशेष करना चाहते हैं (जैसे कि रेल हैंडलर को अनबाइंड करना या नियमित हैंडलर ट्रिगर किए बिना उन्हें ट्रिगर करना) कि नेमस्पेसिंग खेल में आता है। Http://docs.jquery.com/Namespaced_Events देखें –

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