summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorSarven Capadisli <csarven@status.net>2010-01-31 22:37:22 +0000
committerSarven Capadisli <csarven@status.net>2010-01-31 22:37:22 +0000
commit9f36c1000136a99f2b96033abcec90d54da4a4f1 (patch)
treea61f38fb3aaf3d6766eb9d3de8fe04c000adb7f3 /js
parent72037d61436978daa1edbd19d52b7e6fc6ae1fa8 (diff)
Updated XHR binded events to work better in jQuery 1.4.1. Using
.live() for event delegation instead of jQuery.data() and checking to see if an element was previously binded.
Diffstat (limited to 'js')
-rw-r--r--js/util.js76
1 files changed, 35 insertions, 41 deletions
diff --git a/js/util.js b/js/util.js
index b864867fd..f2271a03f 100644
--- a/js/util.js
+++ b/js/util.js
@@ -143,38 +143,32 @@ var SN = { // StatusNet
SN.U.Counter(form);
},
- FormXHR: function(f) {
- if (jQuery.data(f[0], "ElementData") === undefined) {
- jQuery.data(f[0], "ElementData", {Bind:'submit'});
- f.bind('submit', function(e) {
- form_id = $(this)[0].id;
- $.ajax({
- type: 'POST',
- dataType: 'xml',
- url: $(this)[0].action,
- data: $(this).serialize() + '&ajax=1',
- beforeSend: function(xhr) {
- $('#'+form_id).addClass(SN.C.S.Processing);
- $('#'+form_id+' .submit').addClass(SN.C.S.Disabled);
- $('#'+form_id+' .submit').attr(SN.C.S.Disabled, SN.C.S.Disabled);
- },
- error: function (xhr, textStatus, errorThrown) {
- alert(errorThrown || textStatus);
- },
- success: function(data, textStatus) {
- if (typeof($('form', data)[0]) != 'undefined') {
- form_new = document._importNode($('form', data)[0], true);
- $('#'+form_id).replaceWith(form_new);
- $('#'+form_new.id).each(function() { SN.U.FormXHR($(this)); });
- }
- else {
- $('#'+form_id).replaceWith(document._importNode($('p', data)[0], true));
- }
- }
- });
- return false;
- });
- }
+ FormXHR: function(form) {
+ $.ajax({
+ type: 'POST',
+ dataType: 'xml',
+ url: form.attr('action'),
+ data: form.serialize() + '&ajax=1',
+ beforeSend: function(xhr) {
+ form
+ .addClass(SN.C.S.Processing)
+ .find('.submit')
+ .addClass(SN.C.S.Disabled)
+ .attr(SN.C.S.Disabled, SN.C.S.Disabled);
+ },
+ error: function (xhr, textStatus, errorThrown) {
+ alert(errorThrown || textStatus);
+ },
+ success: function(data, textStatus) {
+ if (typeof($('form', data)[0]) != 'undefined') {
+ form_new = document._importNode($('form', data)[0], true);
+ form.replaceWith(form_new);
+ }
+ else {
+ form.replaceWith(document._importNode($('p', data)[0], true));
+ }
+ }
+ });
},
FormNoticeXHR: function(form) {
@@ -281,7 +275,6 @@ var SN = { // StatusNet
$('#'+notice.id).fadeIn(2500);
SN.U.NoticeWithAttachment($('#'+notice.id));
SN.U.NoticeReplyTo($('#'+notice.id));
- SN.U.FormXHR($('#'+notice.id+' .form_favor'));
}
}
else {
@@ -350,14 +343,15 @@ var SN = { // StatusNet
},
NoticeFavor: function() {
- $('.form_favor').each(function() { SN.U.FormXHR($(this)); });
- $('.form_disfavor').each(function() { SN.U.FormXHR($(this)); });
+ $('.form_favor').live('click', function() { SN.U.FormXHR($(this)); return false; });
+ $('.form_disfavor').live('click', function() { SN.U.FormXHR($(this)); return false; });
},
NoticeRepeat: function() {
- $('.form_repeat').each(function() {
+ $('.form_repeat').live('click', function() {
SN.U.FormXHR($(this));
SN.U.NoticeRepeatConfirmation($(this));
+ return false;
});
},
@@ -695,11 +689,11 @@ var SN = { // StatusNet
EntityActions: function() {
if ($('body.user_in').length > 0) {
- $('.form_user_subscribe').each(function() { SN.U.FormXHR($(this)); });
- $('.form_user_unsubscribe').each(function() { SN.U.FormXHR($(this)); });
- $('.form_group_join').each(function() { SN.U.FormXHR($(this)); });
- $('.form_group_leave').each(function() { SN.U.FormXHR($(this)); });
- $('.form_user_nudge').each(function() { SN.U.FormXHR($(this)); });
+ $('.form_user_subscribe').live('click', function() { SN.U.FormXHR($(this)); return false; });
+ $('.form_user_unsubscribe').live('click', function() { SN.U.FormXHR($(this)); return false; });
+ $('.form_group_join').live('click', function() { SN.U.FormXHR($(this)); return false; });
+ $('.form_group_leave').live('click', function() { SN.U.FormXHR($(this)); return false; });
+ $('.form_user_nudge').live('click', function() { SN.U.FormXHR($(this)); return false; });
SN.U.NewDirectMessage();
}