Javascript 单击页面上的任意位置时关闭引导警告
我有两种不同类型的引导警报(警告和危险)。无论发生什么情况,危险警报都应该出现在页面上。警告警报发生在用户单击下拉列表时,它会显示引导警告通知。用户必须单击“x”才能关闭它。我需要它的工作时,用户点击页面上的任何地方或通过点击“x” HomeController.csJavascript 单击页面上的任意位置时关闭引导警告,javascript,c#,asp.net-mvc,twitter-bootstrap,Javascript,C#,Asp.net Mvc,Twitter Bootstrap,我有两种不同类型的引导警报(警告和危险)。无论发生什么情况,危险警报都应该出现在页面上。警告警报发生在用户单击下拉列表时,它会显示引导警告通知。用户必须单击“x”才能关闭它。我需要它的工作时,用户点击页面上的任何地方或通过点击“x” HomeController.cs case "Carrier": var carrierid = (from foo in db.Carriers where foo.ID == warningid
case "Carrier":
var carrierid = (from foo in db.Carriers
where foo.ID == warningid
select foo.WarningID).Single();
if (carrierid != null)
{
warning = (from warnings in db.Warnings
where warnings.IsActive == true && warnings.Id == carrierid
select warnings.WarningBody).SingleOrDefault();
if (warning != null)
{
warning = ("<div class=\"alert alert-warning alert-dismissible\" id=\"myWarning\" role=\"alert\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button><strong>" +
warning + "</strong></div>");
}
else
{
warning = "";
}
}
else
{
warning = "";
}
return Json(warning, JsonRequestBehavior.AllowGet);
default:
break;
//// warning display script takes a value of warningid and warningcaller
$(document).ready(function () {
var warningid = 0;
var warningcaller = "Universal";
loadWarnings(warningid, warningcaller);
});
$('#Phones').change(function () {
var warningid = $(this).val();
var warningcaller = "Phone";
loadWarnings(warningid, warningcaller);})
$('#Carriers').change(function () {
var warningid = $(this).val();
var warningcaller = "Carrier";
loadWarnings(warningid, warningcaller);})
function loadWarnings(warningid, warningcaller) {
$.getJSON("../Home/LoadWarnings", { warningID: warningid, warningCaller: warningcaller },
function (warning) {
var select = $('#warnings');
select.append(warning);
});
};
正如Martin所建议的,这是您需要在javascript中完成的事情。我还没有测试过这个,但会是这样的:
$(document).click(function (event) {
$(".alert").hide();
});
这基本上是,单击页面上的任何位置都会隐藏任何显示的警报
$(document).ready(function () {
$("#myWarning").click(function () {
$(".alert").alert("close");
});
});
这样做,你犯了两个错误:
。只要在屏幕上单击,就会关闭这些元素,因为您有两种不同类型的引导警报(危险和警告)。您必须使用“.alert warning”,因为当用户在页面上的任何位置单击鼠标时,您希望消除该警告。“.alert”是所有引导警报,但是,如果您需要删除特定类型的警报,可以调用上下文类(例如,.alert success、.alert info、.alert warning和/或.alert danger)
这是您需要从视图中的JavaScript而不是控制器中执行的操作。让我更新代码。以前的程序员执行了此操作,我不知道如何执行此操作,我也是MVC新手。@Bryan代码可以工作,但当我单击某个内容时,它会删除我的其他通用修改。我有一些危险的引导程序警报,提示We’我们总是假设存在。警告引导是我需要消除的。你可以在提醒中添加一个额外的类,每当用户单击屏幕上的任何位置时,你总是想关闭该类提醒。我该如何处理@Jota.Toledo?我上传了一张图片。编辑了我的答案
$(document).click(function () {
$(".close-on-screenclick.alert").alert("close");
});
$(document).click(function (event) {
$(".alert-warning").hide();
});