Gridview TH中未引发jQuery事件
jQuery event not raised in Gridview TH
我有一个用一些数据填充的网格视图。
<asp:GridView ID="GridView1" runat="server" ClientIDMode="Static">
</asp:GridView>
代码:
if (!IsPostBack)
{
using (DataClassesDataContext dc = new DataClassesDataContext())
{
GridView1.DataSource = dc.Regions.ToList();
GridView1.DataBind();
}
}
我想当我点击TH
部分时,会显示一个警报。我写了这个代码:
<script type="text/javascript">
$('#GridView1 th').on("click", function () {
alert("nima");
});
</script>
但它不起作用。我的错在哪里?
感谢
编辑1)I编辑主问题,并为选择器添加'
。我忘了打字了。问题是,当我写这段代码时,它是有效的。我想知道上不起作用:
$('body').live('click','#GridView1 th', function () {
alert("hello");
});
您确定正在编写$(#GridView1 th)
吗?应至少为$('#GridView1 th')
。。。并检查"查看源代码",以查看嵌套在其他ASP.NET控件中的正确ID是否永远不会是GridView1
。。。
为了在任何ASP.NET控件中保持安全,您应该使用ClientID
属性,这样您就可以始终编写:
<script type="text/javascript">
var grid = '<%= GridView1.ClientID %>';
$("#" + grid + " th").on("click", function () {
alert("hello");
});
</script>
并且在源代码中验证,如果您真的有一个表头<th>
,正如我所知,它在早期的GridView
中是可选的。。。
从您的代码中,您只是忘记了脚本在页面上一出现就会运行,而且大多数情况下表代码都不在那里。。。
更改此项:
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('#GridView1 th').on('click', function () {
alert("nima");
});
</script>
进入这个
<script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#GridView1 th').on('click', function () {
alert("nima");
});
});
</script>
或者简单地将脚本代码附加在页面的末尾,这样当浏览器到达该行时,所有其他代码都已呈现并可用于DOM。
以下是您的代码的实时示例:http://jsbin.com/etamug/edit#javascript,html只需单击Render按钮即可查看所有设置并运行。。。
我使用了$(function() {});
作为快捷方式,但原始方法是我在这个答案中指定的方法。
您可以在jQuery网站
$(document).ready()
的更多信息
相关文章:
- 在创建对象后附加一个jquery事件
- 将jQuery事件应用于所有类元素
- Jquery事件处理程序仅适用于匿名函数
- 如何在jQuery事件处理程序中存储和重用超时
- 无线电输入更改的jQuery事件未启动
- 我应该/如何清除mousemove JQuery事件侦听器
- 是否可以在jQuery事件中更改Angular范围
- jQuery事件侦听器多次启动
- jQuery 事件处理程序堆叠
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器
- 一个接一个地触发jQuery事件
- 在JQuery事件中查找父元素
- 堆叠jQuery事件(动画)
- 在jquery事件中引用javascript对象
- 动态添加对象的jQuery事件处理程序
- jQuery事件命名空间是否可以包含破折号
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 没有为Ajax添加的新元素注册Jquery事件
- 动态创建的DOM元素上的jQuery事件绑定
- jQuery事件未在动态生成的内容上激发