我是这里的新手,我从django和python学到的很多东西来自这个网站 . 谢谢大家的帮助!这是我的第一个问题 .
当我尝试扩展我从Django教程(1.6)中学到的东西并尝试通过AJAX加载Polls应用程序时,我遇到了2个问题 . 我想使用主要的mysite应用程序作为主页,并使用ajax从mysite项目中的其他应用程序中提取内容 . 本教程并未真正涵盖在单个页面上集成来自不同应用程序的内容 .
我有2个ajax元素已经在主要的mysite页面上工作(一个“技巧或处理”按钮,检索一些愚蠢的文本,和一个小的DNS查找表单/按钮)但这些是mysite应用程序的一部分,所以所有的逻辑是使用mysite app urlconf,视图和模板处理 .
页面上有另一个div,用于“特色应用程序”,也可以通过ajax获取 . 基本上,mysite.views构建了一个具有'ajaxFeaturedAppView'的应用程序列表,然后随机选择一个显示在mysite页面上的“精选应用程序”部分 . 这是我尝试尽可能地将mysite应用程序与其他应用程序分离的新手 .
问题1)初始民意调查问题和选择以及投票按钮都在页面加载时正确显示,但投票按钮只会加载另一个民意调查问题 . 它应该显示民意调查结果 .
问题2)当我点击投票按钮时,页面上的其他ajax元素也会被触发 . 我认为这是因为Vote按钮操作会触发document ready()事件,该事件初始化ajax元素 . 但其他ajax元素不这样做;它们不会触发文件ready()事件 .
实际上,我认为这可能是两个症状的一个问题 . 那么,如何让投票按钮不触发文档就绪事件,这样我才能看到投票结果?或者我做错了什么?
编辑:好的,这些拼凑代码存在一些问题 . 谢谢您的帮助 .
2 回答
正如Daniel Roseman所说,问题是你的
voteBehavior
没有终止并提交表格 . 您可以通过简单地将return False;
添加到您的函数来防止这种情况:或者丹尼尔罗斯曼在致电_1023437时说道:
编写JavaScript时经常出错 . 您尚未在单击或提交时禁用默认操作 . 这意味着JS执行,调用ajax,但随后立即执行正常的浏览器提交,导致刷新 .
voteBehavior
应接受event
参数,您应该在函数开头调用event.preventDefault()
.