我在网页上有一个记录列表(比如说html表) .
<table>
<tr>
<th>checkbox</th>
<th>id</th>
<th>name</th>
</tr>
<tr>
<td><input type="checkbox" name="email[]">1</td>
<td>1</td>
<td>Germany</td>
</tr>
<tr><td><input type="checkbox" name="email[]">2</td>
<td>2</td>
<td>Mexico</td>
</tr>
<tr>
<td><input type="checkbox" name="email[]">3</td>
<td>3</td>
<td>Austria</td>
</tr>
<tr>
<td><input type="checkbox" name="email[]">4</td>
<td>4</td>
<td>UK</td></tr>
</table>
现在,当我选择不同/所有复选框并单击按钮时 .
它应该为每条记录单独打开新的Outlook窗口 . 因此,如果我选择所有4个复选框,则应该打开4个不同的新电子邮件窗口 . 我已经在这里提到了很多问题 . 但无法弄明白 .
最大的问题是我可以运行循环 . 但每次它都无法打开不同的窗口 . 有时它只打开1/2窗口 . 我猜是循环和Settimeout的问题 .
这是我的代码:
function sendMails() {
sendMail_table.$('input:checked').each(function (i, value) {
(function (that, m) {
var t = setTimeout(function () {
if (m.checked) {
var rowIndex = sendMail_table.row($(m).closest('tr')).data();
var party_name = rowIndex[6];
var find = $('#party_email_data td').filter(function () {
return $(this).text() === party_name;
});
emails = party_email_data.row(find.closest('tr')).data();
email_add = emails[1];
email_cc = emails[2];
wnd = window.open("mailto:email_id?subject=hello hi&body=dfdsf",
"_blank", "sdf" + i);
}
}, 1500);
})(this, value);
});
}
sendMails();
所以,这里的列名或变量名对我来说并不重要 . 我在循环和设置方面面临问题 . 所有窗户都不应该打开 .
虽然循环运行的次数应该是应有的,但有些只有1/2的新电子邮件Outlook窗口打开 . 哪个错了 . 我想这是因为JS循环不等待响应或其他任何事情 .
我希望你们都明白我的问题 . 如果有任何其他问题需要提及或澄清,请告诉我 .
我需要这个解决方案 . 任何帮助赞赏 .
谢谢 .
1 回答
出于某种原因,电子邮件弹出窗口在我超时时间内对我来说效果不佳 . 什么工作,将电子邮件弹出窗口置于超时之外 .
顺便说一句,我不知道为什么你需要
timeout
.此外,还有更优雅的方式来弹出电子邮件对话框 .