<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Path="~/hello.js"/>
</Scripts>
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>hello.js$(function () {
$("#Button1").click(
function () {
alert('hello');
}
);
})遇到一个奇怪的问题,第一页面加载的时候click事件有用,但是再点击事件就不触发了。我思考了一段时间发现
$(function () {}是页面加载的意思,我想在pageload里面每次加载hello.js,但是还没有找到何时的解决方法。请大家指教!
用updatepanel就不需要自己写javascript了...
$(document).ready(function(){
$("#Button1").bind('click'.function(){
alert('hello');
});
}
因为 lz 要经过UpdatePanel的无刷新,这就要Button1的click始终有效!
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<Scripts>
<asp:ScriptReference Path="~/hello.js"/>
</Scripts> <asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
$(function () {
);
})
是
$(document).ready(function(){
});
}的简写,你可以查阅下资料。因此这个方法不可以用哦!
$('#<%=Button1.ClientID%>').click(
function () {
alert('hello');
}
);
})
$("#Button1") //获取的是客户端控件
$('#<%=Button1.ClientID%>')//获取的服务器端控件
<div id="UpdatePanel1">
<input type="submit" name="Button1" value="Button" id="Button1" />
</div>
之后,
<div id="UpdatePanel1">
<input type="submit" name="Button1" value="Button" id="Button1" />
</div>
DOM对象具体你指的是什么?请指教?
而前面你的jq给button绑定click事件是在dom加载完毕的时候执行的,所以第一次加载的时候会有效
所以你用updatepannel只是从后台传过来一个button控件,没有click事件了,当然点了没用了虽然你看html代码是一样的,但是其实是不一样的你可以在updatepannel内执行js 重新绑下看看是否可行
而且 其实就是一个onclick事件,直接写函数不行吗?
"updatepannel只是从后台传过来一个button控件"这句话很重要,的却返回来是一个控件。
但是返回来后,页面还是进行一个生命周期的。这个过程里面难道没有dom加载?这个是我不清楚的地方。按照你的逻辑,应该是没有,应该是在页面加载的时候才有dom的加载。后来我做了这样一个实验。放了两个button,一个加updatepanel,一个没有加。
结果:第一点击加了updatepanel 的button,第二次点击了没有加updatepanel的button,页面刷新了一下。(注意了)第三次我点击加updatepanel的button的button,结果却有用了!
这个现象解释了一点,就是updatepanel返回后,页面没有进行脚本的加载。怎么解决这个问题呢。后来我又做了一个这样一个实验,在asp.net ajax中,有个常见的方法,就是脚本 function pageLoad(){$("#Button3").click(
function ()
{
alert('hello');
});} ,这样的话,每次页面加载的时候,都调用了这个函数,也可以实现。好了,谢谢参与回答的朋友了哦!有你们,我才会一步一步往下想!