<div>
<texteare><textarea>
<texteare><textarea>
<div>
div的高度固定100px,textarea的高度也是100px。textarea是动态生成的,当textarea内容很多时会出现垂直滚动条,我想通过jQuery(1.8)获取textarea的滚动事件。
$('div').on('scroll','textarea',function(){
//……
console.log('scroll')
});
通过上面的代码获取不到textarea scroll事件,因为div并不会滚动。
请问一下该怎么写代码才能获取到动态生成textarea的scroll事件
添加示例代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<style>
*{
margin: 0;
padding: 0;
}
div{
width: 100px;
height: 100px;
}
textarea{
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div>
</div>
<button id="add-textarea">添加textarea</button>
<button id="add-data">添加数据</button>
<script src="//cdn.bootcss.com/jquery/1.8.2/jquery.min.js"></script>
<script>
$('#add-textarea').click(function () {
$('div').html('<textarea></textarea>')
})
$('#add-data').click(function () {
$('textarea').val('123\n56\n89\n78\n123\n56\n89\n78\n123\n56\n89\n78\n123\n56\n89\n78\n123\n56\n89\n78\n123\n56\n89\n78\n123\n56\n89\n78\n123\n56\n89\n78\n')
})
$(document).on('scroll','textarea',function(){
console.log('scroll')
})
</script>
</body>
</html>
纠正几个错误。
onscroll
不是onmousewheel
,比较特殊,必须是元素可滚动才能触发。然后
on
就是绑定在了$('这个元素').on(....)
这个元素上,div
没有滚动条触发不了。你可以在添加
textarea
的时候直接给textarea
绑定事件呀。类似这样封装一下,应该可行