2015-10-01 3 views
1

Я пытаюсь скрыть элемент с помощью jQuery, но я думаю, что я сделал что-то не так. Пожалуйста, обратите внимание на мой код:Скрытие элемента с помощью jQuery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

<script type = "text/javascript"> 

$(function(){ 

function hide(id) { 
$("#"+id).hide(); 
} 

}); 

hide("test"); 

</script> 

<div id = "test"> Hello </div> 
+4

'.' является оператором конкатенации в PHP, Javascript использует' + '. – Barmar

+0

Ваша функция должна быть вне функции document.ready – aldrin27

+0

@ aldrin27 Но я думал, что все JQuery должны войти в функцию document.ready, чтобы предотвратить выполнение кода до загрузки страницы. – jessica

ответ

5

Sushil прав, но и ваша функция «скрыть» должна быть вне функции $() и звонок к нему идет внутри. Все это выглядит следующим образом:

function hide(id) {  
    $("#" + id).hide(); 
} 

$(function(){ 
    hide("test"); 
}); 

Ввод функции скрыть() внутри $() делает его таким образом Вы можете только вызвать его из внутри $(). Итак, поставьте его снаружи, а затем вы можете вызвать его из любого места, в том числе изнутри части $().

+0

Но я думал, что все JQuery должны войти в функцию document.ready, чтобы предотвратить выполнение кода до загрузки страницы. – jessica

+2

@jessica Определения функций не выполняются в момент их определения, поэтому они могут быть в любом месте. Важно то, что вы не вызываете их до загрузки DOM. – Barmar

+0

@Jessica Вы должны вызвать код jQuery из документа document.ready, но вы можете объявлять функции вне его, которые вы вызываете из части document.ready. Имеют смысл? –

0

ваш Javascript код должен быть как

$(function() { 

    function hide(id) { 
     $("#" + id).hide(); // notice the '+' 
    } 

}); 
+0

Очевидно, что у него есть ошибки, поэтому он задал вопрос! – Barmar

+0

Есть ли у него несколько ошибок? Что другие? – Barmar

+0

Да, вы правы;) – Sushil

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