【问题标题】:Web2Py Ajax appending to DIVWeb2Py Ajax 附加到 DIV
【发布时间】:2013-02-05 21:44:38
【问题描述】:

我正在尝试使用 AJAX 将内容附加到 ID 为“this_div”的 div。

HTML:

<a href='#' onclick="ajax('append?what=first',
['content'],'this_div')">click</a>

<div id='this_div'></div>

控制器:

def append():
    if request.vars.what == "first":
        something = "ABC"
    else:
        something = "DEF"

return "<script>jQuery('#this_div').append('"+something+"')</script>"

这会将“某物”的内容加载到 div 中,但不会保留以前的内容。谁能解释一下为什么会这样?我是 Python/Web2Py/AJAX 组合的新手..

谢谢!

【问题讨论】:

    标签: jquery python ajax append web2py


    【解决方案1】:

    问题在于ajax() 函数本身覆盖了this_div 的内容,因为那是指定的目标(即,它将DIV 内容替换为返回的&lt;script&gt; 元素,然后将文本附加到DIV )。如果你想追加而不是覆盖,你可以通过 Javascript 来完成,但在这种情况下你需要指定 ":eval" 作为目标:

    <a href='#' onclick="ajax('append?what=first', [], ':eval')">click</a>
    
    <div id='this_div'></div>
    

    控制器:

    def append():
        if request.vars.what == "first":
            something = "ABC"
        else:
            something = "DEF"
        return "jQuery('#this_div').append('%s');" % something
    

    注意,在这种情况下不需要&lt;script&gt; 标签——只需返回要执行的Javascript。此外,如果您的append() 函数不使用“内容”输入,则ajax() 的第二个参数可以只是一个空数组(即[])而不是['content']。

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 1970-01-01
      • 2015-07-29
      • 2015-03-30
      • 1970-01-01
      • 2017-07-21
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多