晚上又犯了一个弱智的错误,jquery中id选择器写法为#id,name选择的话用[name="name"],但我居然把name属性当作id属性,还在纠结为什么不能正常绑定事件,还要同事帮忙看才发现问题,以后不能再放类似弱智的错误了。
今天jquery开发时遇到一个问题要为即将添加的元素绑定事件,一开始像往常一样正常绑定,不行后知道了delegate方法
delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。
语法
$(selector).delegate(childSelector,event,data,function)
| 参数 | 描述 |
|---|---|
| childSelector | 必需。规定要附加事件处理程序的一个或多个子元素。 |
| event | 必需。规定附加到元素的一个或多个事件。 由空格分隔多个事件值。必须是有效的事件。 |
| data | 可选。规定传递到函数的额外数据。 |
| function | 必需。规定当事件发生时运行的函数。 |
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("div").delegate("button","click",function(){
$("p").slideToggle();
});
});
</script>
</head>
<body>
<div style="background-color:red">
<p>这是一个段落。</p>
<button>请点击这里</button>
</div>
</body>
</html>
另外,jquery 新建的元素事件绑定问题中作者分析了其它四种方法,其中有条评论很经典:jquery的delegate、live方法就是干这件事的……
mysql中给指定列数据增加1
格式:update 表名称 set 字段名称 = 字段名称 + 1 [ where语句]
windows上mysql服务远程访问很慢的解决方法:在配置文件中[mysqld]下加上skip-name-resolve后解决