我有第三方组件。这是一个日历控件。我有一个客户端事件,它会触发javascript以显示弹出菜单。我做客户端的一切,所以我可以使用MVC。
DD
function MouseDown(oDayView, oEvent, element) {
try {
e = oEvent.event;
var rightClick = (e.button == 2);
if (rightClick)
{
var menu = $find("2_menuSharedCalPopUp");
menu.showAt(200, 200, e);
}
}
catch (err) {
alert("MouseDown() err: " + err.description);
}
}
javascript完全与$ find发起。
我有另一个客户端方法,通过部分回发来更新日历。一旦我完成了所有后续MouseDowns(右键单击),使用$ find statment错误和'null'。
人们在那里发现的所有类似问题似乎都是在回发后调用 javascript - 解决方案是使用PageRequestManager重新注册事件或在服务器上注册客户端函数 - 等等。
然而,事件正在解雇,而javascript正在运行 - 这是DOM中的引用似乎是一个问题。
有什么想法吗?
答案 0 :(得分:1)
我将尝试解释这个问题:
$find
不是jQuery方法,尽管它可能看起来像一个。它来自ASP.NET Ajax,用于在客户端查找ASP.NET Ajax组件。正确使用没有“#” - 它在大多数情况下需要组件的ID,即ClientID服务器属性。null
。是什么给出的?我建议你尝试使用jQuery ajax加载部分视图。它可以正确执行任何嵌入式JavaScript代码,并可能带来更好的结果。
答案 1 :(得分:0)
你的意思是menu = $('#2_menuSharedCalPopUp');
?
$ find根本没有在你的函数中声明。
在jQuery中使用.find()是
<div id="parent">
<div class="child" />
</div>
$('#parent').find('.child'); // useful for cached jQuery objects
答案 2 :(得分:0)
从部分视图通话返回时,您是否检查过姓名和ID?可能是id已经改变了。
如果是这种情况,那么给控件一个名为“MyCalendar”的类名,然后使用$find(".MyCalendar");
答案 3 :(得分:0)