首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Web2py -如何在ajax之后确定加载控制的结束

Web2py -如何在ajax之后确定加载控制的结束
EN

Stack Overflow用户
提问于 2018-06-09 05:45:36
回答 1查看 104关注 0票数 0

我运行了一个ajax调用,将插值更新为一个完全构建的selectbox元素。

我想把创建/返回的选择框转换成一个选择框,一旦它完成了的完全加载,否则它会恢复成一个常规的选择框。

我试过了:

  • 监听‘DOMSubtreeModified’(和其他类似的事件),然后激活选定的行,但是,这些行运行得太频繁了,我必须知道包含所有选项的选择框何时是fully 。我可以在每次更改时强制启动,这非常耗费资源,而且只是简单地完成一些ajax返回的回调(‘ajax: wrong.
  • Initiate’事件),但是,再说一次,这并不能保证html控件像this answer中所说的那样完全启动(并且经过测试)。
  • 我尝试为select控件设置onload事件。

主要代码行:

JavaScript调用:

ajax('{{=URL('controller_name', 'func_name')}}', ['param1'], 'target_div');

Python控制器返回(这将返回一个带有option对象的select控件,并覆盖target_div内部的html):

return SELECT(distinct_values, _id = 'selectbox_id' , _multiple = 'true' , _class='SelectBoxSingleDisabled');

寻找面向web2py的解决方案。如果可能的话,不要使用暴力/黑客的东西。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-09 07:17:32

有几个选项(前两个是建议的here):

在控制器中,将所选的初始化代码添加到response.js --这将在将返回的HTML添加到DOM之后执行。

  • 将所选的初始化代码添加到脚本元素的select元素之后:

CAT(SELECT(distinct_values,_id = 'manual_group_selectbox‘,_multiple = 'true’,_class='SelectBoxSingleDisabled'),SCRIPT('Chosen‘))

  • ajax()函数的第三个参数可以是获取服务器返回的数据的Javascript函数。因此,您可以编写一个函数,将返回的HTML添加到DOM中,然后初始化returned:

ajax( '{{=URL('controller_name','func_name')}}','param1',function( html ) { add html to DOM });

  • 设置一个jQuery .ajaxSuccess()事件处理程序,它应该在ajax()函数更新DOM之后运行。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50768772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档