错误的定时问题,Telerik RadEditor控件's客户端事件和jquery's on page
Bad timing issue, Telerik RadEditor control's client side events and jquery's on page ready event
我初始化了一个对象,并传入了一个radeditor控件参数。
我想使用我的对象设置一些radeditor的客户端事件,如下所示:
<telerik:RadEditor ...
OnClientLoad="My_Object.SomeFunction" ... />
问题是,我的对象没有正确连接,除非我把它放在jquery的ready函数中,但这似乎在RadEditor事件之后触发,结果我得到了错误消息:
My_Object is undefined
我在做这个:
<script type="text/javascript">
$(document).ready(function () {
editor = $find("<%=RadEditor1.ClientID %>");
My_Object = new MYOBJECT(editor);
});
</script>
如果我尝试在ready函数之外设置$find("<%=RadEditor1.ClientID %>");
,那么对它的调用始终为null。
但是,当我把它放在ready函数中时,My_Object
被实例化得太晚了,当我在RadEditor控件上设置客户端事件时,它说该方法为null。
如何解决这个时间问题?
我在telerik控件方面也遇到过同样的问题。您需要将$(doucment(.ready中的逻辑放入客户端page_load中$(文档(.ready发生在ASP.Net客户端page_load生命周期发生之前,因此telerik控件在客户端还不可用。
function pageLoad(sender, e)
{
editor = $find("<%=RadEditor1.ClientID %>");
My_Object = new MYOBJECT(editor);
}
每当ASP.Net页面通过全页面加载或部分回发的方式度过整个生命周期时,都会调用此方法。
如果只希望此事件发生在初始页面加载中,而不希望发生在任何部分加载中,则还可以在运行逻辑之前检查部分回发当前是否正在发生。
function pageLoad(sender, e)
{
if (!e.get_isPartialLoad())
{
editor = $find("<%=RadEditor1.ClientID %>");
My_Object = new MYOBJECT(editor);
}
}
您可以将初始化对象的脚本块放在<body>
的最后。您不需要依赖"ready(("处理程序,但也要确保编辑器的DOM元素已准备好被找到和操作。(这就是为什么当您不在<head>
中的脚本中使用"就绪"处理程序时,它可能不起作用—DOM在运行时不存在。(
$(document(.ready((将在编辑器初始化之前激发。ASP.NET AJAX客户端框架的init事件触发后,编辑器将可用。这发生在jQuery.ready((代码之后。您应该在不依赖编辑器对象的情况下创建My_Object,因为您无论如何都会从OnClientLoad函数的处理程序获得引用:
<script type="text/javascript">
$(document).ready(function () {
My_Object = new MYOBJECT();
});
</script>
SomeFunction((代码将引用作为参数传递的编辑器:
MYOBJECT.prototype.SomeFunction = function(editor){
//editor is a reference to the RadEditor client-side object
}
- 服务器上的Meteor客户端断开连接事件
- 服务器端事件+客户端事件与Websocket
- ServiceStack JavaScript服务器事件客户端的身份验证
- socket.io:断开连接事件 - “传输关闭”、“客户端命名空间断开连接”、“传输错误”和“强制关闭”
- 我可以在客户端上找到在收听提交事件时按下了哪个提交按钮吗?
- 推送器:无法广播客户端事件
- 服务器触发客户端事件两次
- ASPxClientGridView之后激发的客户端事件.ApplyFilter执行其工作
- 在客户端断开连接时释放事件处理程序 Socket.IO
- Asp.net MVC,通过onclickJS事件从客户端调用C#方法
- Firebase服务器发送事件-如何构建Java/JavaScript客户端
- 客户端和服务器端事件未同时启动
- 客户端事件库(asp.net)
- 下拉列表的 SelectedIndexChanged 事件在从客户端填充时不会触发
- 有没有办法在事件发生时将消息从服务器发送到客户端
- 使用 Javascript 更新客户端中的事件
- 客户端始终响应上一个服务器发送的事件,而不是当前事件
- 在 Telerik ASP.Net UI 客户端中,如果我以内联方式附加客户端事件,如何获取鼠标事件对象
- 是否可以在客户端使用 JavaScript 获取下载完成事件
- METEOR:粘贴事件(客户端)以调用 meteor 方法