C# 异步回发后jquery不工作
我正在使用updatepanel进行异步回发。异步回发后,jQuery功能不起作用。我正在使用jQuery在UpdatePanel内的html表格单元格上连接一些mousedown mouseenter效果。事件以$(document.ready)绑定C# 异步回发后jquery不工作,c#,jquery,asp.net,updatepanel,C#,Jquery,Asp.net,Updatepanel,我正在使用updatepanel进行异步回发。异步回发后,jQuery功能不起作用。我正在使用jQuery在UpdatePanel内的html表格单元格上连接一些mousedown mouseenter效果。事件以$(document.ready)绑定 <script type="text/javascript"> $(function () { $(".csstablelisttd").mousedown(func
<script type="text/javascript">
$(function ()
{
$(".csstablelisttd").mousedown(function (e)
{
//mouse down code
});
$(".csstablelisttd").mouseenter(function (e)
{
//mouse entercode
});
$("#contentPlaceHolderMain_btnFix").click(function (e)
{alert("Alert");//here alert is generate two times an then postback occurs
//btn click code
}
}
</script>
<asp:UpdatePanel ID="updatePanelTableAppointment" runat="server">
<ContentTemplate>
<table id="table" runat="server">
//table data
</table>
</ContentTemplate><Triggers>
<asp:AsyncPostBackTrigger ControlID="btnFix" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
$(函数()
{
$(“.csstablelisttd”).mousedown(函数(e)
{
//鼠标下键代码
});
$(“.csstablelisttd”).mouseenter(函数(e)
{
//鼠标输入码
});
$(“#contentPlaceHolderMain_btnFix”)。单击(函数(e)
{alert(“alert”);//此处生成两次警报,然后发生回发
//点击代码
}
}
//表数据
asp:UpdatePanel
将内容替换为从服务器返回的结果。这意味着所有以前挂接的事件在回发后将不起作用
改用
例如:
<script type="text/javascript">
$(function () {
$("#table").on("mousedown mouseenter", ".csstablelisttd", function (e) {
//mouse down AND mouse enter code
});
$("#contentPlaceHolderMain_btnFix").on("click", function (e) {
alert("Alert");//here alert is generate two times an then postback occurs
//btn click code
});
});
</script>
$(函数(){
$(“#table”).on(“mousedown mouseenter”,“.csstablelisttd”,函数(e){
//按下鼠标并输入代码
});
$(“#contentPlaceHolderMain_btnFix”)。在(“单击”上,函数(e){
警报(“警报”);//此处警报生成两次,然后发生回发
//点击代码
});
});
注意:如果您的鼠标按下和鼠标输入代码不同,请将它们分开
对将存在于
UpdatePanel
中的每个事件挂钩执行相同的操作,您必须为工具箱提供的ajax endRequest添加事件处理程序。详细信息请参阅
加载页面时执行的附加Javascript块。
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle);
function endRequestHandle(sender, Args)
{
alert("After ajax call");
}
如果我没有记错,异步回发不会为jQueryInEndRequestHandle(sender,Args)触发就绪事件,我使用的是document.ready函数或whatIf如果您没有在endRequestHandle中获得绑定,则创建一个进行初始化的函数,如绑定等,并从$(document)调用.ready和EndRequestHandle我已经用一个示例进行了更新。这有意义吗?请告诉我是否需要进一步扩展。
.live()
函数已被弃用数月,不应使用。如果您使用的是1.7.x+,请使用.on()
否则请使用.delegate()
。如果您使用的jQuery版本太旧,没有.delegate()
,更新可能是个好主意。@AnthonyGrist好观点-我将更新示例。我担心()根据我更新的示例,可能会混淆OP,但我希望如果我只键入全部内容,它会有意义。我想补充一点,即使在使用挂钩时,它也不起作用。jquery在异步回发后不起作用