Контактная форма wordpress 7 и пользовательский jQuery конфликтуют

Я использую контактную форму 7 на WordPress, и до сегодняшнего дня у меня была проблема. Я узнал, что это конфликт jQuery. Я обнаружил, что проблема возникает только в Chrome, отлично работает в Firefox.

У меня есть некоторый пользовательский jQuery, который я разместил, и его можно увидеть ниже.

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
    jQuery(document).ready( function(){
        var map = [ '11.99', '£13.99', '£14.99' ];

        jQuery('#payslips-required').change(function(){
            var o = parseInt($(this).val()) < 3 ? jQuery(this).val()-1 : 2;
            jQuery('#price').val(map[o]).addClass('hidden');
        });
    });
</script>

С учетом вышеизложенного ajax не работает в контактной форме 7, которая мне нужна. Когда я удаляю

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

Он работает, но пользовательский jQuery не работает. Мне нужно, чтобы оба бежали.

Это ошибка, которую я получаю, когда проверяю ее в хроме

Uncaught TypeError: Object [object Object] has no method 'on' 

Какие-либо предложения?


person addy88    schedule 28.08.2013    source источник
comment
В опубликованном коде нет ничего, что потребовало бы трехлетней версии jQuery для запуска?   -  person adeneo    schedule 28.08.2013
comment
если это так, почему он не работает, когда я его удаляю?   -  person addy88    schedule 28.08.2013
comment
Откуда мне знать, у меня он отлично работает во всех версиях jQuery -› jsfiddle.net/3wsHA ... так что дело не в этом.   -  person adeneo    schedule 28.08.2013
comment
Я сделал то же самое, и у меня все еще есть та же проблема: это конфликт, из-за которого контактная форма 7 теряет функцию ajax. Возможно ли, что из-за того, что их вызывают два jquery, они заставляют один переопределять другой?   -  person addy88    schedule 28.08.2013
comment
Конечно, вы не должны загружать две версии jQuery, и поэтому я отметил, что приведенный выше код должен работать во всех версиях jQuery, и вы должны использовать самую новую версию. На самом деле, в wordpress вы никогда не должны включать jQuery путем жесткого кодирования, вы должны использовать enqueue script(), чтобы справиться с этим за вас.   -  person adeneo    schedule 28.08.2013
comment
Как мне это сделать? новичок в вордпресс   -  person addy88    schedule 29.08.2013


Ответы (2)


Попробуйте удалить вызов старого файла JQUERY. Затем переместите свои пользовательские строки ниже того места, где Wordpress вызывает файл JQUERY. Скорее всего, вы работаете до загрузки файла JQUERY js.

person Joe    schedule 28.08.2013
comment
Привет, Джо, я пробовал это все тот же результат. Ajax работает, кастомный jquery нет. Вот как это выглядит builtbyaddy.com/header.txt, надеюсь, это поможет - person addy88; 29.08.2013

Просто добавь

define ('WPCF7_LOAD_JS', false );

в вашем конфигурационном файле. Пожалуйста, см. это для получения дополнительной информации.

person vaib    schedule 04.12.2013
comment
Убедитесь, что вы скопировали и вставили соответствующую часть справочной информации из этой ссылки в свой ответ. - person Matt; 04.12.2013
comment
работает нормально, вот официальная документация CF7: contactform7.com/controlling-behavior-by -настройка-констант - person Lorenzo Magon; 31.05.2018