Tag: 递归

使用JQuery Ajax提交表单会导致多个请求(和提交)

我遇到了JQuery表单提交的问题,并且在任何地方都找不到答案。 如果有人能够对此有所了解,我们将非常感激。 问题:我第一次提交表单时,它运行正常。 但是如果我第二次提交相同的表格,它会发送2个请求,第三次发送3个请求,依此类推。 脚本: function postInvokeFunctionForm(functionId){ var formId = “#”+functionId+”-form”; var formUrl = “invokeFunction.html?functionId=”+functionId $(formId).submit( function(){ $.ajax({ type: ‘POST’, url: formUrl, data: $(formId).serialize(), success: function (data){ alert(‘successfully invoked function!’ + data); } }); return false; } ); } 动态生成的forms: 这显然是不可取的。 我能想到的唯一解决方案,id是在提交后重新呈现(动态生成的)表单,但这将是一项昂贵的操作。 这是JQuery ajax提交的已知问题还是我错过了一些明显的东西? 是否有某种forms的递归发生? 谢谢。

jQuery – 未捕获RangeError:超出最大调用堆栈大小

以下代码(请参阅此处的小提琴 )抛出问题标题中引用的堆栈溢出。 我试图在脉冲效果中以圆形图像显示一个框阴影。 有人能指出递归吗? 我是一个Javascript新手,无法看到它。 谢谢。 HTML CSS .pulse { box-shadow: 0px 0px 4px 4px #AEA79F; } 使用Javascript function fadeIn() { $(‘#pulseDiv’).find(‘div.advisersDiv’).delay(400).addClass(“pulse”); fadeOut(); }; function fadeOut() { $(‘#pulseDiv’).find(‘div.advisersDiv’).delay(400).removeClass(“pulse”); fadeIn(); };

循环每次迭代只发生在jQuery延迟后/然后可能没有递归?

我想在循环中调用jQuery延迟函数,但每次迭代都应该等待前一次迭代使用延迟when() function (num_of_iterations) { var arr = []; for (var i = 1; i < num_of_iterations; ++i) { arr.push($.getJSON( … 1 … )); arr.push($.getJSON( … 2 … )); … $.when.apply($, arr).then(function() { // somehow do the next iter. only now that all the asynch getJSON's are done }); } return; } 现在当然,因为getJSON是异步的,所有迭代中的所有请求实际上都会在调用任何时间之前发送。 我意识到我可以通过调用一个包含我在这里所拥有的函数的递归来实现这一点。 但我想知道是否有一些我缺少使用的技术而不是递归。 我总是担心在将来某个时候使用堆栈的递归。 […]

Javascript – 迭代元素的递归函数

我刚刚开始阅读JavaScript,我正在尝试编写一个小的递归函数,它将搜索给定的节点并将值列表作为字符串返回。 我的HTML结构可能是这样的 parentfolder1 item1 item2 parentfolder2 item1 item2 这是我的Javascript函数: function jsoncreator(parentfolderclass){ var jstring = ”; //get first occurance of parent folder var parentfolder = document.getElementById(parentfolderclass); var childnodes = parentfolder.childNodes; for (property in childnodes){ jstring += property+ childnodes[property]; if(childnodes[property] === parentfolderclass){ jsoncreator(parentfolderclass); jstring += childnodes[property].value + ”; } else{ //jstring += childnodes[i].value + ”; } } […]

使用ASP.NET,JQuery和Suckerfish构建数据库驱动的菜单

我正在尝试使用Suckerfish css菜单和Jquery从表创建菜单。 我正在使用它作为我的参考: 使用ASP.NET和JQuery的Suckerfish菜单,我使用手动提供的链接(非常类似于文章)。 我遇到问题的地方是编写递归函数以从数据库中获取菜单项并在适当的层次结构中创建新的菜单项。 我的数据库表如下所示: 表格菜单 MenuID ParentID链接文本 这个想法是,如果一个项目是父级项目,则MenuID和ParentID是相同的,如果它是一个子项,它将在ParentID字段中具有它的父项的MenuID。 我需要创建一个function,可以通过并找到父母的所有子项(可能是几个级别),并让它替换这样的手动条目: Dim Foo As New MenuItem(“#”, “Foo”, Me) Items.Add(Foo) Foo.Items.Add(New MenuItem(“#”, “1”, Me)) Foo.Items.Add(New MenuItem(“#”, “2”, Me)) Foo.Items.Add(New MenuItem(“#”, “3”, Me)) Foo.Items.Add(New MenuItem(“#”, “4”, Me)) 我愿意在必要时更改数据库表结构,并基本上做其他事情来实现这一目标。 感谢您的任何意见,我们非常感谢。

递归搜索JSON或Javascript对象

例如: [{ id:’our-purpose’, title:’Our Purpose’, slug:’/our-purpose’, backgroundImage:’images/bg-our-purpose.jpg’, showInNav:1 }, { id:’our-people’, title:’Our People’, slug:’/our-people’, backgroundImage:’images/bg-our-people.jpg’, showInNav:1, subpages:[ { id:’attorneys’, title:’Attorneys’, slug:’/our-people/attorneys’, subpages:[ { id:’attorneys-cdb’, title:’Attorneys – Carla DeLoach Bryant’, slug:’/our-people/attorneys/carla’ }, { id:’attorneys-jad’, title:’Attorneys – Jordan A. DeLoach’, slug:’/our-people/attorneys/jordan’ }, { id:’attorneys-shh’, title:’Attorneys – Sarah H. Hayford’, slug:’/our-people/attorneys/sarah’ }, { id:’attorneys-jsp’, title:’Attorneys – Jason S. […]

如果jQuery函数在其完成回调中调用自身,那么对堆栈的递归危险是什么?

我正在编写一个小的jQuery组件,它响应按钮按下而动画,也应该自动进行。 我只是想知道这个函数是否递归,我不能完全解决它。 function animate_next_internal() { $(‘#sc_thumbnails’).animate( { top: ‘-=106’ }, 500, function() { animate_next_internal(); } ); } 我的实际function更复杂, 允许停止和启动,这只是一个简化的例子。 编辑它可能是否溢出堆栈,具体取决于事件在内部处理的方式。 可能性: animate()directy调用完成的回调,在这种情况下溢出是不可避免的。 animate()调度回调以供某些外部调度机制调用然后终止,在这种情况下它永远不会溢出。

带有setTimeout的递归JS函数

我有以下代码 var data = [ { id: “0” }, { id: “1”, children: [ { id: “1.1”, children: [ { id: “1.1.1”, children: [ { id: “1.1.1.1”, children: [ { id: “1.1.1.1.1” }, { id: “1.1.1.1.2” }, { id: “1.1.1.1.3” } ] }, { id: “1.1.1.2” }, { id: “1.1.1.3” } ] }, { id: […]

如何递归删除包含空数组的嵌套对象?

我最初收到{“B”:{“1″:”100″,”3”:{“AA”:256}},”A”:100}的AJAX响应{“B”:{“1″:”100″,”3”:{“AA”:256}},”A”:100}并转换为javascript对象: var jsonOBJ = {}; jsonOBJ = jQuery.parseJSON(data); 未来的响应可以是初始响应的子集或超集。 如果服务器上的表值未更改,则停滞数据将替换为空数组。 例: {“B”:{“1″:”90″,”2″:200,”3”:[]}} {“B”:[],”A”:20} 每次收到AJAX响应时,对象都会更新为: jQuery.extend(true, jsonOBJ, jQuery.parseJSON(data)); 但是我需要javascript对象来保持未更改的部分,所以我需要最终得到一个与上面的示例响应相同的对象: jsonOBJ = jQuery.parseJSON(‘{“B”:{“1″:”90″,”2″:200,”3”:{“AA”:256}},”A”:20}’); 我首选的选项是从转换​​后的响应中删除空对象。 是否有一个现有的函数或对jQuery扩展函数的修改可以做到这一点?

在jQuery.find()中为选择器跳过递归?

TL; DR: 我如何得到像find()这样的动作,但阻止某个选择器的遍历(不是完全停止,只是跳过)? 答案: $(Any).find(Selector).not( $(Any).find(Mask).find(Selector) ) 有许多真正伟大的答案,我希望我可以更多地分配赏金点数,也许我应该做出50 pt奖励以回应其中一些; p我选择Karl- AndréGagnon ‘s因为这个答案设法让findExclude不需要一条,稍长,一条线。 虽然这使用了三个查找调用和一个重度不filter,但在大多数情况下,jQuery可以使用非常快速的实现来跳过大多数find()的遍历。 下面列出了特别好的答案: falsarella : 我的解决方案有很好的改进,findExclude(),在许多情况下都是最好的 Zbyszek :一种类似于falsarella的基于filter的解决方案,效率也很高 贾斯汀 :一个完全不同但可管理和function性的解决方案来解决问题 这些都有其独特的优点,值得一提。 我需要完全下降到一个元素并比较选择器,将所有匹配的选择器作为数组返回,但是当遇到另一个选择器时跳过下降到树中。 编辑:用我网站上的一些替换原始代码示例 这是一个消息论坛,可能有回复消息组嵌套在任何消息中。 但请注意,我们不能使用消息或内容类,因为该脚本也用于论坛之外的其他组件。 只有InterfaceGroup , Interface和controls类可能有用 – 最好只是接口和控件。 与代码交互并在JS Fiddle中查看它,感谢Dave A,这里在查看JavaScript控制台时单击按钮,可以看到控件类在每个级别的.Interface嵌套中被绑定了一个额外的时间。 Visual A,论坛布局结构: … condensed … … condensed … … condensed … … condensed … … condensed … 在每个 ,可以有相同结构的任意数量的重复(每个组是消息的线程)和/或更深的嵌套,例如.. … condensed […]