Вот разбивка того, что происходит в вашем коде. В строке, где вы вызываете Intro()
, запускается ваша функция Intro
, которая вставляет ваш абзац hide
. Стоит отметить, что Intro()
не ничего не возвращает , поэтому результат при вызове Intro()
равен undefined
, хотя и вызывает побочный эффект от вставки контента на страницу.
Поэтому, когда вы вызываете $(Intro()).hide()
next, это снова вызовет ваш побочный эффект, вставляя абзац снова, но после этого вы фактически делаете $(undefined).hide()
, а не то, что хотите.
I Верьте, что вы действительно хотите:
function Intro() {
return (
$("<p id='hide'>Can you add effect to the function or only for element such as hide to the id left of me!</p>")
.insertBefore("#placeholder")
);
}
const intro = Intro();
intro.hide();
^ - Здесь вы звоните только Intro()
один раз, поэтому контент вставляется только один раз, и вы возвращает созданный элемент, чтобы потом можно было что-то с ним сделать.