Tag: 回调

在Jquery中如何在提交之前使用回调运行代码

我需要在提交表单之前运行一些jquery代码,似乎存在一些问题。 在你急于推荐之前,请听我说: $(function() { $(‘form’).submit( function() { /* some code */ return true; }); }); 我需要在按下“提交”按钮后首先使用谷歌API计算地址的经度和纬度变量,然后提交表格。 这需要在回调函数中监听响应。 到目前为止我的代码看起来像这样: $(“form input:submit”).click(function(e){ e.preventDefault(); var address = $(this).find(‘.address’).val(); geocoder.geocode( { ‘address’: unescape(address)}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { $(“.latSelector input:hidden”).val(results[0].geometry.location.lat()); $(“.lngSelector input:hidden”).val(results[0].geometry.location.lng()); $(“form”).submit(); } }); }); 如果我使用“submit”函数执行相同的操作,则表单会在触发回调函数之前提交,并且后面的代码将以缺失值执行。 如果我像上面的代码一样使用按钮上的“click”事件并手动提交,那么代码正确执行但提交不会触发表单后面的代码。 我认为我接近这个工作,但我找不到运行代码,处理回调值然后正确提交表单的魔术组合,以便执行后面的代码。

jQuery remove()回调?

有没有官方的方法来挂钩到jQuery.remove(),以便可以在之前/之后调用一个函数? 我有一个系统,其中某些处理程序附加到元素,有时这些元素被删除(例如,一个UI小部件,其主要元素被页面上的一些其他操作删除)。 如果可以通知处理程序他们的主要元素已被删除,我可以更轻松地运行清理例程。

Backbone.js事件绑定

我正在使用Backbone.js为每个模型的视图都有一个分段控件类型的UI元素。 它们各自由具有少量li元素的ul组成。 我想绑定一个事件,以便在单击其中一个元素时,我可以确定单击了哪个元素并使用适当的值更新模型。 问题是Backbone绑定事件(这些是在视图的事件哈希中),这样回调函数中的“this”指的是视图,而不是li元素。 这意味着我无法确定单击了哪些li元素。 如果我使用普通的jQuery绑定,我可以将“this”绑定到li元素,但是我不再跟踪模型了,所以我无法更新它。

jQuery $ .ajax(),将成功数据传递给单独的函数

我正在使用jQuery $ .ajax()函数。 我把它放到一个父函数中,它将一些值传递给ajax函数。 我想做的是,有一个用户定义的回调函数,它获取从ajax成功函数传入的数据参数。 这是我的想法会起作用,但它不是: testFunc = function(str, callback) { // Send our params var data = ‘some data to send’; $.ajax({ type: ‘POST’, url: ‘http://www.myurl.com’, data: data, success: callback }); } 然后我希望能够调用该函数,并传入我的自定义函数,以便我可以使用该函数内部的成功函数数据: testFunc(‘my string data’, function(data){ alert(data); }); 我希望这与以下相同: testFunc = function(str, callback) { // Send our params var data = ‘some data […]

jquery回调函数仅适用于最后一个循环

for(var i=0; i<barValues.length; i++) { actualBarHeight = Math.floor((barValues[i]/chartMaxY)*barchartHeight); var barChartID = "#barChart" + (i+1) $(barChartID + " .value span").css('background-color','transparent'); $(barChartID + " img").animate({ height: actualBarHeight }, 500, function(){$(barChartID + " .value span").css('background-color','white');} ); $(barChartID + " .value span").html("$"+Math.floor(barValues[i])); $(barChartID + " .value").css("bottom",actualBarHeight+"px"); $(barChartID + " .ylabel").html(chartMaxY); }; 上面的jQuery位于for循环中。 循环的每次迭代执行以下操作: 设置跨度的背景 动画一个对象 完成后,重置跨度的背景 我正在使用回调函数来重置背景,因此在完成动画之前完成动画。 但是,它最终只会影响for循环中引用的最后一个span。 如果我在回调之外移动那段代码,那么它会在for循环的每次迭代中影响每一个跨度(但在这种情况下不等待动画) […]

如何在对话框显示中将回调附加到jquery效果?

我的问题是我不知道如何将回调附加到jquery ui对话框节目。 该节目实际上是一个选项: $( “.selector” ).dialog({ show: ‘slide’ }); 我希望在幻灯片动画完成后进行回调。 我从效果本身看,他们有一个回调: effect( effect, [options], [speed], [callback] ) 但在对话框中,效果的设置方式却截然不同。 我也尝试过: $( “.selector” ).dialog({ show: ‘slide’, callback: function() {} }); 但它没有用。 建议?

你能等待javascript回调吗?

我正在尝试使用http://abeautifulsite.net/notebook/87中的jQuery警报对话库而不是默认警报(在我看来这看起来非常糟糕)。 这似乎是一个很棒的库,但是没有一个如何使用jConfirm库的例子。 我需要做这样的事情: function confirm() { var result = false; var response = false; jConfirm(‘are you sure?’, ‘Confirmation Dialog’, function(r) { result = r; response = true; return r; }); if (response == true) { alert(result); return result; } else { //wait for response alert(‘hi’); } } 和我的.net按钮的来电: 我在插件的网站上发布了一条评论(就在今天早上),谷歌搜索了javascript并等待回调完成但没有结果。 在其余的javascript执行之前,有关如何正确使用回调来获取结果的任何想法? 谢谢。

将递归函数转换为异步CPS实现(javascript)

这是我的function。 function duplicate_step_through_highlighted (element_jq, target_jq, char_cb) { console.log( element_jq); var contents = element_jq.contents(); for (var i = 0 ; i < contents.length; ++i) { // if text node, step if (contents[i].nodeType === 3) { // insert empty text node var new_tn = document.createTextNode(''); target_jq.append(new_tn); // iterate it var text = contents[i].nodeValue; for (var j = […]

等待来自调用函数的jquery ajax回调

我已经回顾了很多这类问题的答案,现在我对最好的方法很困惑。 鉴于最新的jquery,我想 调用ajax函数 做ajax处理(成功或错误)//工作正常 成功或错误时将状态返回给调用函数以进行进一步处理 在调用函数(doAjax)中,如何等待回调然后完成成功或错误的处理(在这种情况下,它成功清除表单,出错时保持原样) 感谢任何建议, 艺术[编辑]你们发现有一个错字,打电话应该是doAnAjax不做阿贾克斯 $(function () { doAnAjax(Url, data, function (myRtn) { if (myRtn == “success”) { resetForm($(‘#myForm’)); resetForm($(‘form[name=addChlGrp]’)); } else { $(‘.rtnMsg’).html(“Opps! Ajax Error”); } }); }); function doAnAjax(newUrl, data) { $.ajax({ url: newUrl, async: true, dataType: ‘html’, beforeSend: function () { $(‘.rtnMsg’).html(“”); }, type: “GET”, data: data, cache: false, […]