0

イベントが関連付けられている要素を変更したい。以下の例では、ボーダーを 2px から 10px に増やそうとしましたが、成功しませんでした。

最小限の例を完成させます (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>
4

2 に答える 2

1

event.target はウィンドウ自体であるため、この方法で css を p タグに適用することはできませんが、次の方法で行うことができます: http://jsbin.com/abebof/1/edit

$('p',event.target).css('border', '10px solid');
于 2012-11-20T12:16:08.050 に答える
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オブジェクト (ドキュメントから下にあるオブジェクト) だけです。

于 2012-11-20T12:04:41.733 に答える