Итак, у меня есть тот сайт WordPress, на котором я установил шаблон (Zoo). Моя проблема в том, что я хочу, чтобы весь сайт был на французском языке, и в этом шаблоне есть три кнопки, которые title
тег кодируется глубоко в js-файле, который находится внутри плагина, который был интегрирован в шаблон.
Это мои первые шаги в качестве веб-разработчика (я из C ++), и мне довольно трудно понять, чего не хватает в файлах, но я кое-что понял, оглянувшись вокруг.
Поэтому я сделал детскую тему. Это файл functions.php. Я думаю, что это работает нормально, но вот в случае, если я делаю это неправильно:
<?php
function removethosedamntooltips(){
wp_register_script('removetooltips', get_stylesheet_directory_uri() . '/js/removetooltips.js');
wp_enqueue_script( 'removetooltips' );
}
add_action('wp_enqueue_scripts', 'removethosedamntooltips');
Это вышеупомянутый файл removetooltips.js. Я полагаю, что мне нужно вызвать наведение кнопок, потому что шаблон представляет собой одностраничный параллакс, а кнопки, которые я хочу изменить, не отображаются до тех пор, пока вы не нажмете другую кнопку, которая разрешает другое отображение без отправки браузера на другой URL-адрес (если я удалю строку 2 и закрывающие скобки, которые идут с ним, это все равно не работает). Кроме того, эти всплывающие подсказки появляются только при наведении курсора мыши, поэтому кажется хорошей идеей:
jQuery(document).ready(function(){
alert("jQuery!!");
jQuery("button").hover(function(){
alert("jQuery!!");
jQuery(".mfp-arrow-left").attr("title", "Précédent (flèche gauche)");
jQuery(".mfp-arrow-right").attr("title", "Suivant (flèche droite)");
jQuery(".mfp-close").attr("title", "Fermer (Esc)");
});
});
Первое предупреждение отображается после загрузки страницы, но второе не отображается. Всплывающие подсказки (название кнопки) по-прежнему отображаются на английском языке.
Часть информации, которая может быть полезна для решения этой проблемы (у меня всего 2 дня на чтение материалов о JavaScript и jQuery, поэтому я не знаю): мне пришлось использовать jQuery
вместо $
или консоль скажет мне, что $
это неизвестная функция. Нужно ли мне каким-то образом включать каркас jQuery в мой файл (если так, где и как?), Хотя вызов для библиотеки jQuery уже появляется в заголовке?
Если вы предоставите решение, которое удалит всплывающие подсказки вместо замены их содержимого, я буду достаточно счастлив.
Заранее спасибо !
Вместо того, чтобы использовать
jQuery("button").hover(function(){...});
Вы должны найти контейнер, в котором расположены все кнопки или просто использовать body
и использовать JQuery .on()
метод. Насколько я знаю, это сработает.
так что ваш полный код будет таким
jQuery(document).ready(function(){
alert("jQuery!!");
jQuery("body").on("hover", "button", function(){
jQuery(".mfp-arrow-left").attr("title", "Précédent (flèche gauche)");
jQuery(".mfp-arrow-right").attr("title", "Suivant (flèche droite)");
jQuery(".mfp-close").attr("title", "Fermer (Esc)");
});
});
Объяснение:
С помощью .on()
Метод также связывает событие с динамически созданными элементами. Как вы упомянули в своем вопросе, кнопки не создаются до тех пор, пока не будет нажата другая кнопка / ссылка.
Редактировать: Проверено это и его работа. Я удалил второе предупреждение, потому что с этим вы не сможете проверить.
Других решений пока нет …