彩票走势图

ASP.NET Colorbox jQuery 插件的回传问题

原创|其它|编辑:郝浩|2012-08-20 23:16:05.000|阅读 327 次

概述:当我在一个项目中使用Colorbox jQuery插件和ASP.NET时,遇到了一个奇怪的问题。问题不仅是Colorbox,而且还与另一位著名的插件Fancyox有关。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

当我在一个项目中使用Colorbox jQuery插件和ASP.NET时,遇到了一个奇怪的问题。问题不仅是Colorbox,而且还与另一位著名的插件Fancyox有关。如果你只打算使用插件显示对话框,那么这个插件工作完全正常。如果你在colorbox对话框中的服务器控件(这实际上是一种在页面上不可见的div),与ASP.NET集成的插件工作正常,但是它会阻止回传。 ASP.NET开发人员可以认为这是一个错误,但实际上它是不是一个错误,而是一种情景错过的插件。更多jQuery文章

ASP.NET Colorbox jQuery 插件的回传问题

我有一个按钮,点击“Yes”将重定向到关于页面。现在,当你尝试点击一下按钮,不会有任何回传事件。这是因为Colorbox呈现的“div”标签在“form”标签外,阻碍了回传事件。

现在要解决这个问题,你需要跳转到Colorbox插件代码中。添加这些内容到DOM或在页面上的主要函数被称为appendHTML

function appendHTML() {
if (!$box && document.body) {
init = false;

$window = $(window);
$box = $tag(div).attr({ id: colorbox, 'class': isIE ? prefix + (isIE6 ? 'IE6' : 'IE') : '' }).hide();
$overlay = $tag(div, "Overlay", isIE6 ? 'position:absolute' : '') .hide();
$wrap = $tag(div, "Wrapper");
$content = $tag(div, "Content").append(
$loaded = $tag(div, "LoadedContent", 'width:0; height:0; overflow:hidden'),
$loadingOverlay = $tag(div, "LoadingOverlay").add($tag(div, "LoadingGraphic")),
$title = $tag(div, "Title"),
$current = $tag(div, "Current"),
$next = $tag(div, "Next"),
$prev = $tag(div, "Previous"),
$slideshow = $tag(div, "Slideshow").bind(event_open, slideshow),
$close = $tag(div, "Close")
);

$wrap.append( // The -1x3 Grid that makes up ColorBox
$tag(div).append(
$tag(div, "TopLeft"),
$topBorder = $tag(div, "TopCenter"),
$tag(div, "TopRight")
),
$tag(div, false, 'clear:left').append(
$leftBorder = $tag(div, "MiddleLeft"),
$content,
$rightBorder = $tag(div, "MiddleRight")
),
$tag(div, false, 'clear:left').append(
$tag(div, "BottomLeft"),
$bottomBorder = $tag(div, "BottomCenter"),
$tag(div, "BottomRight")
)
).find('div div').css({ 'float': 'left' });

$loadingBay = $tag(div, false, 'position:absolute; width:9999px; visibility:hidden; display:none');

$groupControls = $next.add($prev).add($current).add($slideshow);

$(document.body).append($overlay, $box.append($wrap, $loadingBay));
}
}

在上面的方法中(这是从插件中摘取的),注意该插件的重点是document.body,而为了使回传事件工作我们需要作如下修改:

将上面

if (!$box && document.body) {

改为

if (!$box && document.forms[0]) {

以及

将上面

$(document.body).append($overlay, $box.append($wrap, $loadingBay));

改为

$(document.forms[0]).append($overlay, $box.append($wrap, $loadingBay));

完成更改后,现在是时候再次检查了。按一下按钮,并再次检查。这次会被重定向到关于页面。虽然这似乎是一个简单的问题,但仍有一些老程序员会因为这个问题而头痛。希望这篇文章对你有所帮助。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:翻译

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP