在html中单击后创建onClick内容
create onClick content after the click in the html
我正在写一个django模板,我正在工作,有很多数据。我有所有的数据在django对象与我在模板。我想在按钮点击时创建表,所以我使用了
$(document).ready(function()
{
$(document).on("click", ".open-infoDialog", function ({{users}}) {});
});
我在上面的函数中创建表但是,在单击按钮之前,函数中已经创建了任何内容。是否有一种方法,我可以创建的代码在html后的按钮单击。
问题发生了,因为有大量的数据,需要很长时间才能看到页面
答案是否定的,不在模板内。模板变量是在服务器上填写的。当浏览器得到它的时候,所有的东西都被填满了。
如果你想在用户点击后才获得一些数据,你需要做一个特殊的视图来返回你想要的额外数据(json或任何你喜欢的)。然后在你的点击处理程序中,你可以对那个视图做一个ajax请求。
从数据的位置和传输时间来考虑这个问题。
1)您希望首先将一个页面加载到用户浏览器中,该页面不包含任何这些大数据。它只包含一个按钮供用户按下获取大数据。发生的方式是,浏览器连接到server/url, django查看urls.py并决定执行哪个视图。然后,视图使用模板生成显示按钮的html。返回到浏览器并显示。
这是请求的结束,你的第一个模板和第一个视图已经完成了它们的工作并退出。
2)然后,只有当用户按下按钮时,您才希望将数据加载到现有页面中。这是另一个请求。当按钮被按下时,click处理程序必须执行代码,使另一个连接到服务器,不同的url,不同的视图,不同的模板。因为返回的是不同的数据。然后在你的javascript中,你把这个新的html加载到你想要的现有页面的一部分…
这是经典的AJAX,它是两个不同的请求,但不是加载整个新页面,你只加载它的一部分。由于你还不清楚这是如何工作的,最简单的方法是编写两个完全独立的Django视图,每个视图都有自己的模板,自己的url等。然后你可以分别测试每一个。一种是返回带有按钮和javascript的页面,但没有数据。另一种方法只返回通常包含数据的页面部分。然后,一旦你让它工作,编写jQuery/javascript代码加载数据。
例如,在你的第一个模板中:
<script>
$(document).ready(function()
{
$(document).on("click", "#loadusers", function () {
$( "#user_select" ).load( "/myapp/loadusers/" );
});
});
</script>
<form>
<input type="button" id="loadusers" value="Load User Choices">
<select id="user_select" name="user"></select>
</form>
在你的loadusers模板中:
{% foreach user in users %}
<option value="{{user.pk}}">{{user}}</option>
{% endfor %}
这将导致第一个视图呈现一个包含空选择的页面。然后单击该按钮,它将从第二个视图加载选项。
尝试以下代码:
$(document).ready(function()
{
var template = {{users}}; // Storing the template in a variable
$(document).on("click", ".open-infoDialog",
function (l_template) {
return function() {
// This function will be called on click.
// Do the stuff here. using l_template
};
}(template)
});
模板将包含您的数据。这里,我们返回一个函数而不是值。返回的函数将在点击回调时调用。
可以在返回的函数中使用l_template
- 动态创建OnClick事件Javascript
- 在onclick上动态创建新页面
- 如何在动态创建元素的内联onclick事件中传递对象
- Javascript onclick需要点击两次,然后会创建越来越多的服务器请求
- 防止动态创建的onclick事件过早触发
- 使用 JQuery 将 onclick 事件添加到动态创建的定位点
- 如何在 JavaScript 中对以 # 开头的 ID 创建 OnClick 事件
- 为动态表行创建onclick事件的Javascript
- 动态创建OnClick处理程序Jquery
- 如何在javascript中获得所有超链接url和创建onclick
- 创建onClick函数以显示数组中的第一个图像
- 在asp.net .cs中创建onclick函数的c#代码
- 使用变量&循环创建"onclick"功能
- 在html中单击后创建onClick内容
- 对动态创建的元素动态创建onclick事件
- 如何为链接创建onclick
- 在其in dom之前创建onClick事件
- 使用 jQuery 动态创建 onClick 事件处理程序
- 为带有下拉菜单的按钮创建onclick事件
- 动态行创建onclick函数