2010-12-04 55 views
2

我已经创建了一个asp.net applicaton,其中包含一个具有更新面板的aspx。 我有一个加载usercontrols的更新面板中的按钮。jQuery已准备好动态加载控件

我的用户控件我试图使用jQuery的facebox插件。

jQuery(document).ready(function ($) { 

    $('a[rel*=facebox]').facebox({ 
     loadingImage: '/styles/images/facebox/loading.gif', 
     closeImage: '/styles/images/facebox/closelabel.png' 
    }); 
}); 

所以对于任何锚标记我想这个插件上下工夫我只需要添加rel="facebox"和它工作得很好。 我曾尝试将rel =“facebox”添加到我想在我的用户控件中使用的标记中,但是除了锚标记之外,没有任何反应会将我重新映射到链接引用中,我试过添加上面的文档。准备好的代码都是aspx & ascx然而没有任何反应。

这是由于usercontrol的动态加载?这是我需要做的其他一些步骤吗?

任何帮助将是伟大的。谢谢

+0

我想你可能需要向我们展示一些更多的代码 – Rob 2010-12-04 00:37:21

回答

0

开始排除故障的时间。在不同的地方添加这一行:console.log(“testing1”),并确保这些日志消息显示在Firefox的Firebug控制台中。

  • 如果他们不这样做,你有一些问题 ,并不包括在 你的问题的信息。
  • 如果就绪功能 触发,但facebox不,它是 facebox的问题。

这是什么?

+0

我将这一点添加到我的主页面,aspx页面和usercontrol。我发现除了usercontrol之外的所有内容都正在写入控制台 – 2010-12-04 00:39:52

2

是的,这是因为更新面板。动态添加到页面的代码不会由jQuery选择器自动匹配,因此事件处理程序不会触发。为了解决这个问题,您可以在加载新代码后重新注册事件处理程序,也可以使用live()。由于这些处理程序是在facebox中注册的,因此您可能需要修改facebox的代码。这里有一个需要更改的实例:line 159