大家好,我一直是做cs的,最近想学bs,在asp.net中调用jquery的时候为什么jquery里的方法没有执行。代码如下
jquery代码:
function showMsg(event) {
alert('aa');
}
$(function () {
document.getElementById("div2").onclick = showMsg;
});
asp.net代码:
<asp:Button ID="div1" runat="server" Text="div1" OnClientClick="showMsg()" />
<asp:Button ID="div2" runat="server" Text="div2"></asp:Button>
运行这个窗体的是好,点击div1按钮 客户端事件里没有弹出aa提示框
div2按钮也没触发
看下客户端生成的HTML控件的ID是否还是div1,另外,既然都用jquery了,就索性jquery到底
$("#div1").click(function(){
alert('aa');
})
不会调用
<asp:Button ID="div1" runat="server" Text="div1" OnClientClick=" $('#div1').click(function () { alert('aa'); })" />
这样可以,但是如果我想在<script>这个标签里写 就不会写了
@吴伟伟: $("#div1").click 已经自己绑定了,不用调用,你只需要把那段代码放到$(function(){})就可以了,
$(function(){
$("#div1").click(function(){
alert('aa');
})
})
@ludi: 谢谢
浏览器上按F12就能看到原因了
没用
肯能问题出现在根源上。先看看是否引用了js文件,其次再看看是否写在了script标签中。
恩写了的 <script type="text/javascript" src="scripts/jquery-1.4.1-vsdoc.js"> 这个是写在<title>下面
@吴伟伟: 这个文件是jquery智能提示。
试试增加<script type=text/javascript>
alert($)</script>
no,是因為你使用了模板,button的id就變了,注意你的id是服務器的id,會解析成其他的id的
做b/s这一块,要善用开发人员,就是f12,通过调试代码找出问题所在,一楼和二楼说的都很好,div1按钮没触发的,估计你没写<script>标签,至于第二种由于服务端控件,页面生成的时候,id就可能不是div2了,要搞清楚那个是html标签和asp.net服务端控件
你不要加 runat="server" 这个在按钮上, 也就是说你用一般的HTML按钮 试试!
我就是想要asp.net控件调用jquery,html可以调用的
@吴伟伟: 主要是你用了服务器的控件,当你点击按钮时,它就回传,所以没有调用你的$(function () {
document.getElementById("div2").onclick = showMsg;
});
ClientIDMode="Static"时控件的客户端ID不会发生变化;
function showMsg() {
alert('aa');
}
试下,div1和div2都可以弹出
不懂
function showMsg(event) {
alert('aa');
}
试下,div1和div2都可以弹出
弹不出来的
<asp:Button ID="div1" runat="server" Text="div1" OnClientClick="showMsg()" /> 服务器控件 还有你的写的方法 有参数 为什么没传递个参数?
如果根据id找到button的话 得使用document.getElementById("<%div2.ClientId%>")
怎么传参数