Jquery没有';无法使用多视图
我在UpdatePanel中的MultiView中有一个div。当我单击UpdatePanel中的按钮时,执行回调并显示div,但在鼠标悬停时它不会改变颜色(jquery不工作) 如果我将div放在UpdatePanel之外,jquery将正常工作 这里有什么问题 多谢各位Jquery没有';无法使用多视图,jquery,asp.net,multiview,Jquery,Asp.net,Multiview,我在UpdatePanel中的MultiView中有一个div。当我单击UpdatePanel中的按钮时,执行回调并显示div,但在鼠标悬停时它不会改变颜色(jquery不工作) 如果我将div放在UpdatePanel之外,jquery将正常工作 这里有什么问题 多谢各位 <script src="jquery-1.5.2.min.js" type="text/javascript"></script> <asp:ToolkitScriptManager ID="
<script src="jquery-1.5.2.min.js" type="text/javascript"></script>
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<script type="text/javascript">
$(document).ready(function () {
$("#MyDiv").hover(function () { $(this).css({ 'background-color': 'Red' }) });
});
</script>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:MultiView runat="server" ID="mvPopup">
<asp:View ID="View1" runat="server">
<div id="MyDiv">Some text here</div>
</asp:View>
</asp:MultiView>
<asp:LinkButton runat="server" OnClick="btnLink_Click" ID="btnLink" Text="Click here" />
</ContentTemplate>
</asp:UpdatePanel>
protected void btnLink_Click(object sender, EventArgs e)
{
mvPopup.ActiveViewIndex = 0;
}
$(文档).ready(函数(){
$(“#MyDiv”).hover(函数(){$(this.css({'background color':'Red'}));
});
这里有一些文字
受保护的无效btnLink\u单击(对象发送方,事件参数e)
{
mvPopup.ActiveViewIndex=0;
}
尝试使用,因为第一次加载文档时div不在页面上:
$(document).ready(function () {
$("#MyDiv").live("hover", function () { $(this).css({ 'background-color': 'Red' }) });
});
如果要在悬停后执行其他操作,请尝试绑定到mouseover和mouseout:
$('#MyDiv').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
});
尝试使用,因为第一次加载文档时div不在页面上:
$(document).ready(function () {
$("#MyDiv").live("hover", function () { $(this).css({ 'background-color': 'Red' }) });
});
如果要在悬停后执行其他操作,请尝试绑定到mouseover和mouseout:
$('#MyDiv').live('mouseover mouseout', function(event) {
if (event.type == 'mouseover') {
// do something on mouseover
} else {
// do something on mouseout
}
});
问题是当创建
div
时,jquery脚本已经运行。尝试使用方法绑定到mouse-over和mouse-out属性问题是当创建div
时,jquery脚本已经运行。尝试使用方法绑定到鼠标悬停和鼠标悬停属性,我相信更新面板会异步引入内容,这意味着它会在触发document.ready
事件后放置在页面上。因此,在事件发生后,您将绑定到该事件。尝试剥离文档.ready
部分,看看是否有效
编辑:或者按照其他人的建议使用
live
。那可能是最好的。我很确定我的推理是正确的,为什么它不起作用 我认为,更新面板异步引入内容,这意味着它被放置在document.ready
事件触发后的页面上。因此,在事件发生后,您将绑定到该事件。尝试剥离文档.ready
部分,看看是否有效
编辑:或者按照其他人的建议使用
live
。那可能是最好的。我很确定我的推理是正确的,为什么它不起作用 另一件事可能是.Net正在重写元素的id,因此jquert无法找到正确的id
对于.Net web表单,请尝试在jquery
$(“[id$='MyDiv']”)中使用以下选择器
另一件事可能是.Net正在重写元素的id,因此jquery无法找到正确的id
对于.Net web表单,请尝试在jquery
$(“[id$='MyDiv']”)中使用以下选择器
您可以使用Sys.Application.add\u load事件处理程序在ajax回发完成后执行客户端脚本。您可能不想将其包装到Document Ready中,只需将jquery代码放在一个普通函数中,并从AjaxLoadComplete()调用它即可
系统应用程序添加负载(AjaxLoadComplete);
函数AjaxLoadComplete(){
//在这里调用jquery方法
}
另外,确保add_load()调用遵循scriptmanager标记。您无法将其放入标题中,因为SYS对象尚不存在。您可以在ajax回发完成后使用SYS.Application.add\u load事件处理程序执行客户端脚本。您可能不想将其包装到Document Ready中,只需将jquery代码放在一个普通函数中,并从AjaxLoadComplete()调用它即可
系统应用程序添加负载(AjaxLoadComplete);
函数AjaxLoadComplete(){
//在这里调用jquery方法
}
另外,确保add_load()调用遵循scriptmanager标记。您不能将其放在标题中,因为SYS对象尚不存在。您的
。hover
事件中只有一个函数。要么使用两个(一个用于鼠标进入,另一个用于鼠标离开),要么使用mouseover
。您的.hover
事件中只有一个函数。或者使用两个(一个用于鼠标进入时,另一个用于鼠标离开时),或者使用mouseover
。还有一个问题-如果我使用each()为document.ready上的html元素(宽度、高度等)设置一些初始参数,那么如何将each()(或某些等效项)与live()这样的函数一起使用呢在这种情况下,当我在document.ready之后加载内容时?答案是这里还有一个问题-如果我使用each()为document.ready上的html元素(宽度、高度等)设置一些初始参数,那么如何将each()或一些等价物与live()这样的函数一起使用呢在这种情况下,当我加载文档后的内容时。准备好了吗?答案在这里