2012-03-21 12 views
0

Я пытался добавить простые функции JQuery в админку для простого виджета я develpoing, такие как:Jquery на WordPress администратора

jQuery("$id").show() и jQuery("$id").hide()

функций, но они не работают.

Может ли кто-нибудь сказать мне, как использовать jquery в зоне администрирования WP?

ответ

0

Попробуйте jQuery("#\\$id").show(); и jQuery("#\\$id").hide();

+0

Почему '# \\ $ id'? – m90

+0

@ m90, если 'id' элемента' $ id' для экранирования специальных кулачков, используйте две обратные косые черты. проверить [Как выбрать элемент по идентификатору, который имеет символы, используемые в нотации CSS? на jQuery FAQ] [1]: [1]: http: //docs.jquery.com/Frequently_Asked_Questions#How%5Fdo%5FI%5Fselect%5Fan%5Felement%5Fby%5Fan%5FID%5Fthat%5Fhas%5Fcharacters%5Fused % 5Fin% 5FCSS% 5Fnotation.3F – tusar

+0

Благодарим вас за помощь, но я думаю, что сделал ошибку в моем вопросе, jquery selector должен быть jQuery ("# ​​id"), а не jQuery ("id"), извините для этого – user1282688

0

Там два возможных вопросов здесь. Первым может быть, что вы выбираете ID s странным образом. Обычно yo выбирает элемент по ID в jQuery, как и в CSS, с # -prefix, например: $('#id').show() или $('#id').hide(). Если вы это знаете и просто сохраняете селектор CSS в $id, вы уже в порядке.

Вторая вещь, с которой многие сталкиваются, заключается в том, что ваш jQuery должен ждать, пока DOM будет готов, прежде чем он может фактически вступить в силу (если он будет выполнен до того, как DOM будет готов, все выборы будут пустыми). Для того, чтобы получить это сделано, вы обычно обернуть свой код в $(document).ready -Listener:

$(document).ready(function(){ 
$('#id').fadeIn('slow'); 
}); 

Таким образом, весь код внутри функции обработчика будет ждать, пока DOM не будет готов, прежде чем она будет выполнена.

На стороне записки: как вы упомянули show() и hide() как ваши примеры вы также можете быть заинтересованы в toggle(): http://api.jquery.com/toggle/

+0

На панели администрирования wordpress это не работает, отлично работает на лицевой стороне, но не на панели администратора. – user1282688

+0

Проблема в том, что каждый элемент виджета должен иметь класс, а не идентификатор. Кажется, что Wordpress делает какую-то магию и блокирует ваш скрипт, делая что-либо, и они делают это правильно, потому что, как быть с двумя одинаковыми виджетами на боковой панели? У вас будут идентификаторы с одинаковым именем, и это плохо. – TGeorge

0

Если у вас есть элемент с идентификатором, как

<div id="myId"></div> 

, то вы можете выбрать ваш div как

jQuery("#myId").show(); 
Смежные вопросы