2015-06-05 3 views
-2

Im пытается запустить функцию, когда страница загружается событием onload, которое я включаю в тег body. Для моей функции требуется значение $(this). Проблема здесь в том, что $ (this) не будет работать в функции. Но это работает, когда я использую событие onClick какие-либо идеи, почему и как его исправить?

Это не работает.

<body onload="infoPopUp($(this), 3);"> 

Это делает.

<body onclick="infoPopUp($(this), 3);"> 
+0

Просьба привести несколько примеров кода, чтобы обеспечить контекст вашего вопроса. – knolleary

+0

Извините, не понимаю ваш вопрос. Любой код? – panther

+0

Вы хотите иметь доступ к '$ (document.body)' из onload? –

ответ

2

Вы можете легко копировать внешний <body onload=""> и <body onclick=""> в JQuery:

$(function() { 
    // your document has been loaded 
    // infoPopUp($('body'), 3) can be used here 
}); 
+0

Sidenote,' load 'и' domcontentloaded' (готовые документы) являются технически разными событиями, хотя они должны работать теоретически. См. эту статью http://stackoverflow.com/questions/2414750/difference-between-domcontentloaded-and-load-events как reference ... – War10ck

+1

Не знаю о событии 'DOMContentLoaded'. В большинстве случаев я бы хотел использовать' Load' anyway =]. Спасибо за это! –

1

Тело в document.body + вы забыли закрыть кавычки.

<body onload="infoPopUp(document.body, 3);"> 
+0

спасибо, что это отлично работает для меня: D –

+0

Ваша заключительная цитата должна после запятой –

+0

@RobertLee: вы правы, но почему downvote для опечатки, которая ничего не делает? В JS точка с запятой является необязательной в этом случае, а в html будет проигнорирована. Она работает во всех случаях: с точкой с запятой до " , после "и без него. – panther

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