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="

我在UpdatePanel中的MultiView中有一个div。当我单击UpdatePanel中的按钮时,执行回调并显示div,但在鼠标悬停时它不会改变颜色(jquery不工作)

如果我将div放在UpdatePanel之外,jquery将正常工作

这里有什么问题

多谢各位

<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()这样的函数一起使用呢在这种情况下,当我加载文档后的内容时。准备好了吗?答案在这里