Jquery manipulate elements by a passed object reference -
i have jquery code me
$('.parent').livequery('change', function() { $(this).parent('.show_sub_categories').append('<img src="nlevel_ajax_dropdown/loader.gif" style="float:left; margin-top:7px;" id="loader" alt="" />'); $.post("nlevel_chid_categories.php", { parent_id: $(this).val(), }, function(response){ var ref = $(this).parent('.show_sub_categories'); settimeout("finishajax('show_sub_categories', '"+escape(response)+"','"+ref+"')", 400); }); return false; }); }); function finishajax(id, response,ref){ $('#loader').remove(); $(ref).append(unescape(response)); // , giving error } what want make call finishajax function upon ajax completion , append result parent of element on event fired, tried getting referene of parent var ref = $(this).parent('.show_sub_categories'); , passed along finishajax call in settimeout function throwing jquery error.
here actuall error message : syntax error, unrecognized expression: [object object]
(function(e,t){function _(e){var t=m[e...y",[],function(){return v})})(window);
you can .done() instead of adding parameter post. also, anonymous functions more easier debug, when need pass parameters in settimeout syntax. try :
$('.parent').livequery('change', function() { var ref=$(this).parent('.show_sub_categories'); ref.append('<img src="nlevel_ajax_dropdown/loader.gif" style="float:left; margin-top:7px;" id="loader" alt="" />'); var ajaxpost = $.post("nlevel_chid_categories.php", { parent_id: $(this).val() }); ajaxpost.done(function(response){ settimeout(function(){ finishajax('show_sub_categories', response, ref); }, 400); }); return false; }); edit: adjusted ref definition use on + passing in unescaped version of response in .done part.
also, ref passed in finishajax selector should accessed directly @ point:
function finishajax(id, response, ref){ $('#loader').remove(); ref.append(response); }
Comments
Post a Comment