2012-11-20 89 views
0

我想更改附加事件的元素。在下面的例子中,我嘗試將border從2px增加到10px,但沒有成功。發生事件時更改元素

完整的小例子(查找失敗行):

<?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

正是你試圖改變邊界是什麼?整個窗戶? –

+0

@ShadowWizard:來自'2px'的每個''p'我最初在發生滾動時使用jQuery設置爲'10px'。編輯:我看到我的錯誤 – Deleted

回答

1

您將event.target是窗口本身,所以你不能應用CSS到p標籤這種方式,雖然可以做到這一點的方法:http://jsbin.com/abebof/1/edit

$('p',event.target).css('border', '10px solid'); 
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對象(可從文檔中找到)。

相關問題