2012-04-25 3 views
0

Я работаю над полным пониманием определений классов в JavaScript. В настоящее время у меня есть класс, определенный как следующий:Обработчики событий в JavaScript «класс»

function Item() { this.init(); } 
Item.prototype = { 
    init: function() { 
     this.data = { 
      id: 0, 
      name: "", 
      description: ""  
     } 
    }, 

    save: function() { 
     $.ajax({ 
      url: getUrl(), 
      type: "POST", 
      data: JSON.stringify(this.data), 
      contentType: "application/json", 
      success: save_Succeeded, 
      error: save_Failed 
     }); 
    } 
} 

Моя проблема, я не знаю, как, или где, чтобы определить мои save_Succeeded и save_Failed обработчиков событий. Может кто-нибудь, пожалуйста, помогите мне? Спасибо!

+0

внутри 'Item'. где еще это может быть? – gdoron

+0

Если вы определяете новый объект-прототип, не забудьте добавить свойство 'constructor: Item'. –

+0

Что это за «конструктор: предмет»? Это первое, что я когда-либо слышал об этом. У вас есть статья или что-то, что я могу использовать, чтобы узнать об этом? –

ответ

2

Добавить context: в свой $.ajax вызова, указывающий на this так, что правильный объект передается в качестве this при вызове обработчиков.

Что-то вроде:

save: function() { 
    $.ajax({ 
     context: this, 
     url: getUrl(), 
     type: "POST", 
     data: JSON.stringify(this.data), 
     contentType: "application/json", 
     success: this.save_Succeeded, 
     error: this.save_Failed 
    }); 

(при условии, что вы также положить save_Succeeded и save_Failed в prototype) }

+0

+! гораздо лучше, чем у меня ... – hvgotcodes

+0

Можете ли вы, пожалуйста, дать мне образец? Я не совсем понимаю, что вы говорите. –

Смежные вопросы