Правильная разметка jQuery

Как мне написать следующий код в jQuery?

       $("select").change(function(){
    if($("#selectedid").is(":selected")){
        $("#showblock").slideDown("slow");
    } else { $("#showblock").slideUp("slow"); } 
});

Я также пробовал следующее:

jQuery("select").change(function($){
        if($("#selectedid").is(":selected")){
            $("#showblock").slideDown("slow");
        } else { $("#showblock").slideUp("slow"); } 
    });

Это для вордпресса. Спасибо!


person Trekdrop    schedule 15.08.2013    source источник
comment
Что вы имеете в виду, когда пишете следующий код в jQuery? Пожалуйста, постарайтесь быть более конкретным   -  person Mattsjo    schedule 15.08.2013
comment
В зависимости от ситуации может быть достаточно простого переключения (медленного)   -  person Mattsjo    schedule 15.08.2013
comment
Извините, я немного редактирую код. Однако проблема в том, что WordPress выдаст этот код с ошибкой. Как Property '$' of object [object Object] is not a function   -  person Trekdrop    schedule 15.08.2013
comment
не могли бы вы поделиться html для select   -  person Arun P Johny    schedule 15.08.2013
comment
какую ошибку вы получаете? проверьте элемент в хроме и вставьте сюда ошибку, пожалуйста   -  person pythonian29033    schedule 15.08.2013
comment
Можете ли вы поделиться с нами ссылкой на веб-сайт, чтобы мы могли проверить?   -  person pythonian29033    schedule 15.08.2013
comment
Возможный дубликат jQuery Uncaught TypeError: Property '$' объекта [объект Window] не является функцией   -  person Trekdrop    schedule 04.03.2016


Ответы (3)


В wordpress вы, вероятно, получите ошибки, потому что wordpress включает версию jquery, которая отредактирована, чтобы не использовать оператор '$'

вы должны заменить каждый экземпляр «$» на jQuery, чтобы ваш код выглядел так;

jQuery("select").change(function(){
    if(jQuery("#selectedid").is(":selected")){
        jQuery("#showblock").slideDown("slow");
    } else { 
        jQuery("#showblock").slideUp("slow"); 
    } 
});

попробуйте это и скажите мне, как это работает для вас.

более простым способом было бы просто включить стандартную (загруженную) версию jquery и включить ее в свой header.php

person pythonian29033    schedule 15.08.2013
comment
Спасибо! это сработало. Я подумал, что могу дать функции переменную $ - person Trekdrop; 15.08.2013

Я думаю, это происходит потому, что вам нужно разрешить конфликт для "$"

Из Кодекса Word Press

jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
});
person Anand    schedule 15.08.2013

Вам нужно просто обернуть свой код в немедленно вызывающую функцию и передать ей Jquery.

(function($) {

    $("select").change(function(){
       if($("#selectedid").is(":selected")){
           $("#showblock").slideDown("slow");
       } else { 
           $("#showblock").slideUp("slow");
       } 
  });

})(jQuery);
person patelarpan    schedule 18.03.2018