【发布时间】:2014-07-23 21:46:20
【问题描述】:
当我们进入问号 [我有问号的图像] 符号 [?] 时,我需要打开一个 jquery 弹出窗口。我在一个名为 [Edit.cshtml] 的视图上有 3 个问号符号。
1)
HQ Compatible 意味着 HRA 结果将用于在 MyHealth 报告上创建健康商数分数。2)
如果问卷设置为激活的“否”,则所有已配置合同的问卷演示将终止。将 Active 设置为“No”将不允许将调查问卷添加到任何新合同中。3)
如果调查问卷被“锁定”,则调查问卷将保持存在于配置有调查问卷的任何有效合同中。任何新的合同都不允许添加问卷。我写了一个j查询函数,调用了上面三个:
$('#iconQuestionActiveImageDiv').dialog({
autoOpen: false,
draggable: true,
resizable: false,
closeText: 'X',
height: 140,
width: 200
});
$('.iconQuestionActiveImage').mouseover(function(e) {
e.preventDefault();
$('#iconQuestionActiveImageDiv').show();
$('#iconQuestionActiveImageDiv').dialog({ position: [e.pageX, e.pageY] });
$('#iconQuestionActiveImageDiv').dialog('open');
$('.ui-dialog-title').text('Active options');
return true;
}).mouseout(function() {
$('#iconQuestionActiveImageDiv').dialog('close');
$('#iconQuestionActiveImageDiv').hide();
});
// 2. Locked option
$('#iconQuestionLockedImageDiv').dialog({
autoOpen: false,
draggable: true,
resizable: false,
closeText: 'X',
height: 140,
width: 200
});
$('.iconQuestionLockedImage').mouseover(function(e) {
e.preventDefault();
$('#iconQuestionLockedImageDiv').show();
$('#iconQuestionLockedImageDiv').dialog({ position: [e.pageX, e.pageY] });
$('#iconQuestionLockedImageDiv').dialog('open');
$('.ui-dialog-title').text('Active options');
return true;
}).mouseout(function() {
$('#iconQuestionLockedImageDiv').dialog('close');
$('#iconQuestionLockedImageDiv').hide();
});
// 3. HQ Compatible Option
$('#iconQuestionHQCompatibleImageDiv').dialog({
autoOpen: false,
draggable: true,
resizable: false,
closeText: 'X',
height: 140,
width: 200
});
$('.iconQuestionHQCompatibleImage').mouseover(function(e) {
e.preventDefault();
$('#iconQuestionHQCompatibleImageDiv').show();
$('#iconQuestionHQCompatibleImageDiv').dialog({ position: [e.pageX, e.pageY] });
$('#iconQuestionHQCompatibleImageDiv').dialog('open');
$('.ui-dialog-title').text('Active options');
return true;
}).mouseout(function() {
$('#iconQuestionHQCompatibleImageDiv').dialog('close');
$('#iconQuestionHQCompatibleImageDiv').hide();
});
});
一切正常。
但是有什么方法可以传递我创建的 div 的 id 以减少代码的长度。
L*** 建议我使用 QuestionPopupFor Html Helper,它可以让您在 4 个地方执行此操作,而无需复制多个代码。
任何想法,请回复。
$('.iconQuestionHQCompatibleImage').mouseover(function(e) { e.preventDefault();
@Html.QuestionPopupFor("#iconQuestionHQCompatibleImageDiv");
//$('#iconQuestionHQCompatibleImageDiv').show();
//$('#iconQuestionHQCompatibleImageDiv').dialog({ position: [e.pageX, e.pageY] });
//$('#iconQuestionHQCompatibleImageDiv').dialog('open');
//$('.ui-dialog-title').text('Active options');
return true;
}).mouseout(function () {
@Html.QuestionPopupClose("#iconQuestionHQCompatibleImageDiv");
//$('#iconQuestionHQCompatibleImageDiv').dialog('close');
//$('#iconQuestionHQCompatibleImageDiv').hide();
});
我正在尝试以这种方式使用,但它不起作用。
我正在 Html Helper 类中编写一个 jquesry 逻辑,如下所示:
public static string QuestionPopupFor(this HtmlHelper helper, string divTag) { var javascript = string.Empty; //javascript = string.Concat(javascript, "$('", divTag, "').dialog({ autoOpen: false, draggable: true,resizable: false, closeText: 'X',height: 140, width: 200 )");
javascript = string.Concat(javascript, "$('", divTag, "').show()");
javascript = string.Concat(javascript, "$('", divTag, "').dialog({ position: [e.pageX, e.pageY] })");
javascript = string.Concat(javascript, "$('", divTag, "').dialog('open')");
javascript = string.Concat(javascript, "$('.ui-dialog-title').text('Active options')");
return javascript;
}
public static string QuestionPopupClose(this HtmlHelper helper, string divTag)
{
var javascript = string.Empty;
javascript = string.Concat(javascript, "$('", divTag, "').dialog('close')");
javascript = string.Concat(javascript, "$('", divTag, "').hide()");
return javascript;
}
【问题讨论】:
标签: jquery asp.net-mvc html-helper