2012-11-20 3 views
0

Я хочу изменить элемент, к которому привязано событие. В приведенном ниже примере я пытаюсь увеличить границу с 2px до 10 px без успеха.Изменение элемента при возникновении события

Полный минимальный пример (обратите внимание на 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

Что граница именно вы пытаетесь изменить? Из всего окна? –

+0

@ShadowWizard: Каждый 'p' из' 2px' я изначально устанавливал с помощью jQuery на '10px', когда происходит прокрутка. Изменить: я вижу свою ошибку – Deleted

ответ

1

Вы event.target является само окно, так что вы не можете применить CSS к р тегов таким образом, хотя вы можете сделать это так: 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 (которые найдены из документа вниз).

Смежные вопросы