jQuery nyromodal + ASP.Net + UpdatePanel / AJAX - endShowContent不工作,闪烁,失去焦点

时间:2009-05-13 00:04:15

标签: jquery asp.net-ajax nyromodal

我在ASP.Net中使用jQuery nyroModal插件。我喜欢nyroModal,整体而言它的工作非常好。

但是我使用endShowContent回调在nyromodal加载完成后将焦点设置到页面内容的第一个文本输入元素。为了实现这一点,我在启动nyromodal弹出窗口的页面上有以下代码。

$(function(){         $ .fn.nyroModal.settings.endShowContent = function(elt,settings){$('input:text:first',elt.content).focus(); };     });

我可以告诉它的工作方式,因为当模态出现时,第一个文本字段会立即获得焦点。但随后又出现了一些闪烁,再次失去焦点。这几乎就像nyromodal决定它仍然没有完全装满,而其他一些事情恰好让焦点消失了。或者UpdatePanel可能会干扰? (我不知道为什么会这样)。在nyromodal的endShowContent调用发生后,UpdatePanel的膨胀自动生成的AJAX JS调用是否可能正在执行某些操作?

感谢任何帮助或见解。

3 个答案:

答案 0 :(得分:2)

我试图在这里重新创建问题:http://jsbin.com/igibo

我无法复制问题,所以我猜你的代码中还有其他东西导致了这个问题。

尝试通过http://jsbin.com/igibo/edit修改娱乐内容以复制问题,然后我们就可以从那里解决问题。

P.S。虽然您正在改善问题,但请更新问题,而不是在新答案中添加更多信息。 (他们在技术上不是答案)

答案 1 :(得分:0)

您是否尝试过将代码包装在

$(document).ready(function() { // put all your jQuery goodness in here. });

JQuery Document Ready Tutorial

dom可能尚未满载。

答案 2 :(得分:0)

谢谢brianpeiris!你不会相信这一点,我感到恶心。

我从jsbin那里得到你的代码并在本地复制它,所以我把你的示例代码与我自己的测试页面并排。在我的测试页面中,我使用了一种旧方法来启动一个nyromodal,它是:

<a href="modal.html" target="_blank" class="nyroModal">Launch modal</a>

我在示例等网络上发现了这个代码。但似乎必须采用一些旧的/狡猾的/取代的方式来启动带有nyromodal的模型弹出窗口!

我只是制作了一个普通/干净的超链接并删除了类和目标垃圾,然后使用了你发送给我的相同样式:

$('a').nyroModal();

现在我的所有问题都消失了。这已经解决了一切! :)此外,窗口打开的动画更加流畅。

非常感谢。我发现这个插件的文档有些不一致。你帮我指出了正确的方向。使用这种方式,焦点也能完美而平稳地工作。

干杯