Tag: 回调

从jquery ajax调用中分配变量返回undefined

我是jquery的新手,我试图在ajax调用之后为变量赋值,但它返回undefined。 我的代码如下: function prepareDocument() { var a = getAverageRating(1); alert(a); } function getAverageRating(pageId) { $.ajax({ url: “../services/rating.ashx?action=getAverageRating&pageId=” + pageId, dataType: “text”, type: “GET”, data: {}, error: function (err) { displayDialogBox(“Error”, err.toString()); }, success: function (data) { return data; } }); } 任何帮助,将不胜感激。 谢谢,

使用包含的参数传递回调函数?

我有以下代码.. function getGrades(grading_company) { if (grading_company == ‘Not Specified’) { // Remove grades box & show condition box showConditionBox(); } else { // Set file to get results from.. var loadUrl = “ajax_files/get_grades.php”; // Set data string var dataString = ‘gc_id=’ + grading_company; // Set the callback function to run on success var callback = […]

javascript中的排序函数调用 – 回调是唯一的方法吗?

我通过这样的各种线程阅读了例如。 但它真的让我无法完成以下任务: 我有4个function,希望它们按顺序依次发生。 请注意它们的顺序不正确,以便了解我的观点。 我想要输出“1,2,3,4”的结果 function firstFunction(){ // some very time consuming asynchronous code… console.log(‘1’); } function thirdFunction(){ // definitely dont wanna do this until secondFunction is finished console.log(‘3’); } function secondFunction(){ // waits for firstFunction to be completed console.log(‘2’); } function fourthFunction(){ // last function, not executed until the other 3 are done. console.log(‘4’); […]

将ajax调用中的值返回到父函数

我有一个函数,我需要通过ajax调用返回一个url。 var heatmap = new google.maps.ImageMapType({ getTileUrl: function(coord, zoom) { var tileURL; $.get(‘getimage.php’, { zoom: zoom, x: coord.x, y: coord.y }, function(data) { if(data.status) { tileURL=data.image; } }, “json”); return “tileURL”; }, tileSize: new google.maps.Size(256, 256), opacity:0.55, isPng: true }); 显然,ajax调用是异步的,所以我理解为什么上面的代码会将tileURL作为undefined返回。 我知道一般来说人们使用回调函数来解决这个问题,但我不知道如何回调给父函数返回一个值。 我正在使用谷歌地图API,所以我真的没有任何灵活性来改变它的工作原理。

从嵌套回调函数中提取返回值

为了简化我的问题,我对代码进行了一些修改。 我现在能够从回调函数中获取值,我现在想将此数据传递给变量。 使用Javascript 如何让PostInformation返回args? function AjaxRequest(callback) { var hasErrors = false; dojo.xhrPost({ url: ‘hello’, content: SomeData, load: function (formErrors) { //preform some operation //set hasErrors to true hasErrors = true; if (typeof callback === “function”) callback(hasErrors); }, error: function (e) { console.log(e + ‘ page not posted error’); } }); } function PostInformation() { try […]

带回调的JSONP和GET – 帮助纠正错误

这是我的JSONP文件: <?php header('Content-type: application/javascript;'); header("access-control-allow-origin: *"); header("Access-Control-Allow-Methods: GET"); //db connection detils $host = "localhost"; $user = "test"; $password = "test"; $database = "myradiostation1"; //make connection $server = mysql_connect($host, $user, $password); $connection = mysql_select_db($database, $server); //query the database $query = mysql_query("SELECT *, DATE_FORMAT(start, '%d/%m/%Y %H:%i:%s') AS start, DATE_FORMAT(end, '%d/%m/%Y %H:%i:%s') AS end FROM radiostation1"); //loop through […]

jquery淡入回调而不是等待

我试图让一个div消失,然后在它的位置有第二个div淡入,但第二个div消退的回调似乎不等待第一个完成淡入淡出,实际上它们都褪色时间给予交叉淡入效果的父亲而不是淡出然后在之后。 inheritance人代码: $(document).ready(function () { //toggle story text $(function () { $(“#imageGallery”).scroll(function () { if ($(this).scrollLeft() > 1000) { $(“#story2”).fadeIn(“300”, function () { $(“#story1”).fadeOut(“300”); }); } else { $(“#story1”).fadeIn(“slow”); $(“#story2”).fadeOut(“slow”); } }); }) }); 和页面即时使用它: http://www.jonathantopf.com/imijstudio/ 任何想法为什么会这样?

jQuery事件:为现有的回调处理程序添加一个回调处理程序

在网页上是带有click和/或按键处理程序的元素。 如果我添加一个新的,它将在它们之后执行。 我需要一种方法来添加一个新的回调,它被添加到事件处理程序列表中,以便事先执行它。 如何用jQuery实现这一点? 更新 为什么我不能只使用jQuery的unbind方法? 我正在将jQuery代码注入任何网页,因此我不知道是否使用了任何JavaScript框架。 我需要一种通用的方法来检测事件处理程序并预先安排。 (在你问之前,我正在构建一个“记录器”应用程序,它跟踪用户存储它们的操作并在以后执行它们。) 更新2 我只使用Firefox,不需要IE兼容性。 我必须等待页面完全加载,然后我的jQuery脚本将被调用。

理解jquery回调

我很难理解javascript回调应该如何工作。 我使用以下代码从MySQL数据库中获取值: $.post(“getResults.php”, { x: 100, y: 200}, function(arrayOfValues){ alert( arrayOfValues[2] ) }, ‘json’); alert()返回正确的值,并按预期运行。 但是,我不明白如何将arrayData[2]的值传递或返回到我的程序的其他部分(我尝试的尝试没有工作)。 我已经阅读了jquery帮助和大量的SO问题和答案,但我不明白回调是如何工作的。 在这种情况下,我希望我的主程序可以访问arrayOfValues [2]。

在回调时重新初始化jquery手风琴

我的手风琴在页面加载方面工作正常,但是当用户与页面上的某些元素进行交互时,我使用ajax来重建手风琴的HTML。 然后,我尝试再次重新初始化手风琴 $(‘#accordion’).accordion({ active: false, autoHeight: false, clearStyle: true, collapsible: true, header: ‘h3’ }); 但是……它似乎没有采取。 渲染HTML的新块未应用手风琴规则。 相反,它只是作为一个大型列表保持开放。 我甚至尝试过setTimeout()重新调用手风琴,只是在回调中返回呈现的HTML之前尝试初始化。 在回调中呈现的HTML与pageload的HTML完全相同(除了在Accordion方法生效时发生的DOM添加)