jquery - 如何清除写入 window.open 的 kylefox jQuery-modal?
问题描述
我使用 kylefox / jquery-modal 在我的 CRUD 应用程序中执行多项任务。
显示一个模式,并通过右键单击几个不同字段之一加载其内容。在第一次右键单击模态构建并按其应有的方式显示。关闭它是通过模式窗口上的“关闭”按钮完成的。
在同一个会话期间,如果另一个右键单击用于启动另一个模式,甚至是同一个模式,它会出现,但它在窗口上有两组信息。第三次点击无论从哪里再次显示,但这次将有三组信息。这是相同信息的三次重复,而不是信息的三个不同迭代。并且每个模态显示在顶部提供正确的信息,但将其复制到模态已启动的次数。
我不得不认为这是因为模态在使用之间没有被清除。因此,基于另一个 SO 解决方案,我尝试使用“e.preventDefault()”函数,如您所见,我已经在我的函数中尝试了它。但我没有迹象表明它对我的重复有任何影响。这个小提琴(来自;无法清除 jquery modal popup 上的先前文本)似乎也回答了它;http://jsfiddle.net/hg9NJ/8但我不明白如何将其应用于我的情况。
我很困惑,我希望有人能指出我的解决方案。
function getCallHistory() {
//Get the td under tr and invoke on contextmenu
$('tr').on('contextmenu', 'td', function(e) {
//e.preventDefault(); //Prevent defaults'
// Get the call and clean it up, that was right clicked
var idparm = $(this).attr('id');
var arparm = idparm.split(":");
var id = arparm[1];
id = id.replace(/\s+/g, '');
var call = $(this).html(); //alert(call);
call = call.replace(/\s+/g, ''); // remove spaces
if (call == '' ) {alert("no call");}
var vals = [call].map((item) => item.split(/\W+/,1));
call = vals[0];
//e.preventDefault(); //Prevent defaults'
var thisdomain = getDomain(); //alert("@124 in NetManager.js thisdomain= "+thisdomain);
// By using _blank it allows multiple popups
var popupWindow = window.open("x", call, strWindowFeatures);
//e.preventDefault(); //Prevent defaults'
$.ajax({
type: "GET",
url: "getCallHistory.php",
data: {call : call, id : id},
success: function(html) {
popupWindow.document.write(html);
},
error: function() {
alert('Last Query Failed, try again.');
}
});
});
}
解决方案
推荐阅读
- hash - 使用散列的 LZW 压缩和字典实现
- php - Symfony 3.4 表单登录重定向到索引页面并进行身份验证
- php - 正则表达式从 php 字符串中获取带有空格的手机号码
- reactjs - 有没有办法修复这个调度方法
- android - Android studio 3.3 Mac 上,Logcat 找不到可选窗口
- javascript - vuejs - 提交 axios 表单后显示警报和重定向
- django-models - 如何在多字段中使用“包含”?
- c++ - 将参数传递给 FindNextFileA 不起作用?
- scala - Scala 谓词组合
- python - PySimpleGUI 中 InputText 的 Read() 方法仅读取具有可变布局的最后一行