Как объединить в одну функцию?
Может кто-то подскажет как обединить этот код в один запрос и возможно ли это вообще
Есть такой код: jQuery('#link_unvote a').click(function(event) { var href_link = jQuery(this).attr('href'); var title_link = jQuery(this).attr('title'); var link_this = this; var re = /^(\w+)\(([^)]*)\)$/; var found = href_link.match(re); var splits = found[2].split(','); var el9 = splits[3].replace(/('|")/g,''); vote(splits[0], splits[1], splits[2], el9, splits[4], link_this,title_link); return false; }); jQuery('.vote_button').click(function(event) { var href_link = jQuery(this).attr('href'); var title_link = jQuery(this).attr('title'); var link_this = this; var re = /^(\w+)\(([^)]*)\)$/; var found = href_link.match(re); var splits = found[2].split(','); var el9 = splits[3].replace(/('|")/g,''); vote_news(splits[0], splits[1], splits[2], el9, splits[4], link_this,title_link); return false; }); function vote_news(user, id, htmlid, md5, value, link_this,title_link) { jQuery.ajax({ url: "/vote.php", data: "id=" + id + "&user=" + user + "&md5=" + md5 + "&value=" + value, type:'POST', success: function(aws){ split = new RegExp ("~--~"); if (aws.match (split)) { b = aws.split (split); jQuery(link_this).parent().parent("div").find("#xvotes").html(b[0]).end().find(".vote_img").html("<span class='vote_text_small'>Plus</span>").parents(".stories").find("#linksummaryBury").fadeOut(3000); } else { errormatch = new RegExp ("^ERROR:"); aws = aws.substring (6, aws.length); jQuery(link_this).parent().parent("div").find(".information_box").show().html(aws).fadeOut(3000); } }, error: function (aws){ } }); } function vote(user, id, htmlid, md5, value, link_this,title_link) { jQuery.ajax({ url: "/vote.php", data: "id=" + id + "&user=" + user + "&md5=" + md5 + "&value=" + value, type:'POST', success: function(aws){ split = new RegExp ("~--~"); if (aws.match (split)) { b = aws.split (split); jQuery(link_this).parent().parent("div").find("#linksummaryBury").fadeOut(3000).end().parent().parent("div").find(".vote_img").html("<span class='vote_text_small'>Delete</span>"); } else { errormatch = new RegExp ("^ERROR:"); aws = aws.substring (6, aws.length); jQuery(link_this).parent().parent("div").find(".information_box").show().html(aws).fadeOut(3000); } }, error: function (aws){ } }); } т.е. код идентичен за исключением этих строчек: jQuery(link_this).parent().parent("div").find("#linksummaryBury").fadeOut(3000).end().parent().parent("div").find(".vote_img").html("<span class='vote_text_small'>Delete</span>"); jQuery(link_this).parent().parent("div").find("#xvotes").html(b[0]).end().find(".vote_img").html("<span class='vote_text_small'>Plus</span>").parents(".stories").find("#linksummaryBury").fadeOut(3000); Получается из-за двух строчек , так много повторяющегося кода :( |
Вобщем сделал так:
jQuery('#link_unvote a, .vote_button').click(function(event) { var href_link = jQuery(this).attr('href'); var title_link = jQuery(this).attr('title'); var link_this = this; if(jQuery(this).is('#link_unvote a')){ var jquery_link = 'jQuery(link_this).parent().parent("div").find("#linksummaryBury").fadeOut(3000).end().parent().parent("div").find(".vote_img").html("<span class=\'vote_text_small\'>Delete</span>")'; } if(jQuery(this).is('.vote_button')){ var jquery_link = 'jQuery(link_this).parent().parent("div").find("#xvotes").html(b[0]).end().find(".vote_img").html("<span class=\'vote_text_small\'>Plus</span>").parents(".stories").find("#linksummaryBury").fadeOut(3000)'; } var re = /^(\w+)\(([^)]*)\)$/; var found = href_link.match(re); var splits = found[2].split(','); var el9 = splits[3].replace(/('|")/g,''); vote(splits[0], splits[1], splits[2], el9, splits[4], link_this,title_link,jquery_link); return false; }); function vote(user, id, htmlid, md5, value, link_this,title_link,jquery_link) { jQuery.ajax({ url: "/vote.php", data: "id=" + id + "&user=" + user + "&md5=" + md5 + "&value=" + value, type:'POST', success: function(aws){ split = new RegExp ("~--~"); if (aws.match (split)) { b = aws.split (split); eval(jquery_link); } else { errormatch = new RegExp ("^ERROR:"); aws = aws.substring (6, aws.length); jQuery(link_this).parent().parent("div").find(".information_box").show().html(aws).fadeOut(3000); } }, error: function (aws){ } }); } Незнаю правильно или нет , но работает :) |
Часовой пояс GMT +3, время: 10:16. |