以前一直是用 低版本的jq 库 1.7 1.8左右的, 然后绑定事件都是用的 静态的用bind绑定,动态的用live 绑定的, 现开发新的项目打算用1.9 版的库 听说1.9 的on 已合并了 bind ,live,delegate 但是奇怪的是 我做了个测试还是没办法实现 live的效果啊, 动态生成的元素还是没办法成功绑定事件,
这是什么情况 ?<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Scripts/jquery-1.9.1.min.js"></script>
</head>
<body> <table>
<tr>
<td>
<p id="pclick">点我给页面添加一个按钮</p>
</td>
</tr>
</table>
<script> $(function () {
$("#pclick").on("click", function () {
$("<input type='button' value='test' id='btnTest' />").insertAfter($(this));
}); $("#btnTest").on("click", function () {
alert("进来了");
});
})
</script>
</body>
</html>
这是什么情况 ?<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Scripts/jquery-1.9.1.min.js"></script>
</head>
<body> <table>
<tr>
<td>
<p id="pclick">点我给页面添加一个按钮</p>
</td>
</tr>
</table>
<script> $(function () {
$("#pclick").on("click", function () {
$("<input type='button' value='test' id='btnTest' />").insertAfter($(this));
}); $("#btnTest").on("click", function () {
alert("进来了");
});
})
</script>
</body>
</html>
解决方案 »
- 求js中三角函数为题?
- js怎么检测所使用的浏览器?然后作出相应的提示?
- 关于原型和继承的问题。
- 紧急提问读文件的问题
- 关于页面元素的 firefox 的自定义元素
- 怎么实现点击一个按纽弹出一个带有很多输入框的web对话框?
- 如果何使两个Table的宽始终保持一样?
- 如何利用js将文本框(text)中的值依次传递给下拉框表单(select)中?
- 那位高手能指点一下吗?很急的!!!!
- jquery 的 <script> $(function(){}); 函数失效?
- JS DOM 如何获取触发事件的节点?
- 求教,隐藏DIV层中的BUTTON按钮执行AJAX为什么不执行,呼叫ILOVE_ASPNET
alert("进来了");
});
亲, 为什么一定是这样的写法了? 难道只有这种格式的话 才会像以前的live方式? 如果写成这样
$("#btnTest").on("click", function () {
alert("进来了");
});
他就会走bind方式?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="Scripts/jquery-1.9.1.min.js"></script>
</head>
<body> <table>
<tr>
<td>
<p id="pclick">点我给页面添加一个按钮</p>
</td>
</tr>
</table> <div>
<input type="button" name="btnTest" value="我一直都在" />
</div>
<script> $(function () {
$("#pclick").on("click", function () {
$("<input type='button' value='test' name='btnTest' />").insertAfter($(this));
}); $("td").on("click", "input[name='btnTest']", function () {
alert("进来了td");
});
$("div").on("click", "input[name='btnTest']", function () {
alert("进来了div");
});
$("button").on("click", "input[name='btnTest']", function () {
alert("进不来");
});
})
</script>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<table>
<tr>
<td>
<p id="pclick">点我给页面添加一个按钮</p>
</td>
</tr>
</table>
<script>
$(function () {
$("#pclick").on("click", function () {
var newE=$("<input type='button' value='test' id='btnTest' />").bind('click',function () {
alert("进来了");
});
newE.insertAfter($(this));
});
})
</script>
</body>
</html>
alert("进来了");
}).insertAfter($(this));
没 不是怪jquery 哦,只是自己不理解on 这个方法 ,对JS也不很熟悉, 有些小疑问,问问,讨论下了。