我想更改附加事件的元素。在下面的例子中,我尝试将边界从2px增加到10像素而没有成功。
完成最小例子(查找FAILS行):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Example</title>
<style>P { margin-bottom: 40%; }</style>
</head>
<body>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$('p').each(function (i) {
$(this).css('border', '2px solid');
$(window).scroll(function (event) {
console.log('scroll triggered, but nothing happens!');
event.target.css('border', '10px solid'); // FAILS with TypeError: event.target.css is not a function
});
})
</script>
</body>
</html>
答案 0 :(得分:1)
明确选择要将css应用到的元素。
$(window).scroll(function (event) {
console.log('scroll triggered, but nothing happens!');
$('body').css('border', '10px solid'); // FAILS with TypeError: event.target.css is not a function
});
即使您使用event.target
,也必须先将其包装在jQuery集合中,然后才能使用.css
方法:
$(event.target).css...
这个问题是将css应用到窗口不起作用;您只能将css应用于HTMLElement
个对象(可从文档中找到)。
答案 1 :(得分:1)
你event.target是窗口本身,所以你不能以这种方式将css应用于p标签,尽管你可以这样做:http://jsbin.com/abebof/1/edit
$('p',event.target).css('border', '10px solid');