2012-06-28 6 views
5
events: 
    'click textarea': 'composeComment' 
    'click .submit': 'submit' 
    'blur textarea': 'textareaBlur' 
    'resize article': 'repositionBoards' 


repositionBoards: -> 
    #this is my own function, i just need it to be called everytime an article's size changes 
    board.align() 

मैं अपने repositionBoards विधि को आकार बदलने के तरीकों से कैसे प्राप्त करूं?रीढ़ की हड्डी में एक लेख में मैं एक आकार बदलने का कार्यक्रम कैसे जोड़ूं?

उत्तर

8

resize eventwindow को भेजा जाता है:

resize घटना window तत्व को भेजी जाती है जब ब्राउज़र विंडो के आकार में परिवर्तन

लेकिन एक बैकबोन दृश्य की घटनाओं को देखने के लिए बाध्य कर रहे delegate का उपयोग कर। व्यू के el को resize ईवेंट नहीं मिलेगा, इसलिए 'resize articule': 'repositionBoards' आपके व्यू के events में कोई अच्छा नहीं होगा।

आप अपने ध्यान में रखते हुए resize घटना प्राप्त करने की आवश्यकता है, तो आप window लिए यह अपने आप को बाध्य करने के लिए होगा:

initialize: (options) -> 
    $(window).on('resize', this.repositionBoards) 
remove: -> 
    $(window).off('resize', this.repositionBoards) # Clean up after yourself. 
    @$el.remove() # The default implementation does this. 
    @ 
repositionBoards: -> 
    # Use => if you need to worry about what `@` is 
    board.align() 

इसके अलावा एक remove के अलावा ध्यान दें, ताकि आप अपने resize हैंडलर निकल सकते हैं। आप निश्चित रूप से, अपने दृश्य को हटाने के लिए view.remove() का उपयोग करना चाहते हैं या बस इसके बारे में चिंता न करें यदि वह दृश्य आपका पूरा एप्लिकेशन है।

+0

पूरी तरह से उत्तर के लिए धन्यवाद। मेरी एकमात्र चिंता यह है कि जब टेक्स्ट में प्रवेश किया जाता है तो मेरे लेख के आकार बदल जाते हैं। जब आकार फैलता है, तो मैं रिपोजिशन बोर्डों को कॉल करना चाहता हूं। लेकिन चूंकि आकार बदलना खिड़की पर भेजा जाता है, यह मुझे अच्छा नहीं करता है। क्या आप जानते हैं कि कोई ऐसी घटना है जो किसी लेख या div के आकार बदलने के लिए बंधी जा सकती है? जब यह ऊंचाई या चौड़ाई बढ़ने पर फैलता है। फिर से धन्यवाद। –

+0

@ user1489926: लेकिन खिड़की के अलावा किसी अन्य चीज़ पर कोई आकार बदलने की घटना नहीं है, AFAIK आपको इसे कठिन तरीके से करना है: http://stackoverflow.com/q/172821/479863 –

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