这是我的测试用例:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.0.2.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('.sequence').on('click', function()
{
e = $(this).next(); // div element, DOM element
e.html(Math.random());
e.on('click', function()
{
e.html(Math.random());
});
});
});
</script>
</head>
<body>
<div class="sequence">Sequence 1</div>
<div>1</div>
<div class="sequence">Sequence 2</div>
<div>2</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
上层代码可以在http://jsfiddle.net/3LrXZ上测试.
当我点击div 序列1时,下一个首先有文本'1'的div得到一些随机值让我们说0.3126203578431159.然后我点击div 序列2和最初有值'2'的下一个div得到一些随机值让我们说0.16280379495583475.直到现在一切正常.现在当我点击第一个0.3126203578431159时,第二个div 0.16280379495583475会改变值.元素0.312620357843115应该更改值(获取新的随机值,而不是第二个).
这是否意味着您无法绑定DOM元素上的事件,您只能绑定html元素id,类和其他一些属性上的事件?是不是每个DOM元素都有一些可以使用的ID.
范围问题.您的未声明e成为两个处理程序之间共享的全局.要解决这个问题:
var e = $(this).next();
Run Code Online (Sandbox Code Playgroud)
这将e在每个序列的处理程序中具有唯一性.
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |