如何在加载ajax模式时不重新加载
how to not reload when loading ajax modal
当用户点击如下下拉菜单时,我会在屏幕上显示模式警报:
$(document).ready(function(){
$('#id_state').change(function(e){
var selection = $("#id_state").val();
if(selection == 1){
event.preventDefault();
var entryType = 'diabetes';
var data = new Object();
data.entryType = entryType;
programAlertModal(programAlertModalCallback, data);
return false;
}
});
$('#id_state').trigger('change');
});
然后在此处调用程序警报模式:
programAlertModal:function(callback, data){
var entryType = data.entryType;
var url = '/shared/enrollment/'+entryType+'/';
$.get(url, function(result) {
callback(result, entryType);
return false;
});
},
programAlertModalCallback:function(result, entryType){
$( "body" ).append(result);
},
结果是一些看起来像这样的html:
<div class="takeover">
<div class="takeover-bg"></div>
<div class="takeover-body">
{% if entry_type == 'diabetes' %}
<h1>My awesome title</h1>
<a href="">Dismiss</a>
</div>
</div>
如何在不重新加载页面(并清除下拉选择)的情况下取消加载的内容?
在Dismiss链接中添加一个类,以便我们可以引用它:
<a href="#" class="dismiss">Dismiss</a>
然后绑定一个在回调中删除模态的处理程序:
programAlertModalCallback: function(result, entryType) {
var $result = $(result).appendTo("body");
$result.find("a.dismiss").on("click", function(e) {
e.preventDefault();
$result.remove();
});
},
将e
参数传递给函数并添加e.preventDefault();
,以防止a
标记的默认行为重新加载页面。您还应该在a
中包含href="#"
,因为在某些情况下,将其留空会导致一些麻烦。
相关文章:
- 在新的浏览器选项卡上加载新的aspx页面后调用JavaScript函数
- 更改css链接并等待加载新的css
- 如何在Ajax加载新内容时停止JavaScript执行
- 当在ng视图中加载新路由时,Tabbing(tabindex)针对错误的元素
- 如何使用输入数据加载新的extjs图表
- JQuery Masonry.Ajax图标和“;加载新项目”;绳子放错地方了
- 通过javascript在同一个打开的选项卡中重新加载新的网页内容
- 当用户到达页面右侧时加载新内容
- 数据表 AJAX 筛选器重新加载数据
- 超链接单击以加载新页面并执行JavaScript
- 单击时加载新的 SVG
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- ajax在页面刷新之前不会加载新的sql结果
- 谷歌地图API-在从ajax页面加载新数据之前清除标记、多段线
- 使用Ajax加载页面,并在必要时加载新脚本
- 加载新页面时的过渡效果,AJAX
- Ajax没有正确加载新页面
- 正在加载新的Javascript,但正在调用旧的Javascript.MVC
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 我怎么能有一个花哨的盒子一样的弹出体加载,但与cookie不连续加载重新加载