将 HTML 工具提示内容替换为 PHP/jQuery
Replacing HTML tooltip content with PHP/jQuery
所以,我有一个安装了模板 (Zoo) 的 WordPress 网站。我的问题是我希望整个网站都是法语的,并且该模板中有三个按钮,title
标签在一个 js 文件中进行了深入编码,该文件位于已集成到模板中的插件中。
这些是我作为 Web 开发人员(我来自 C++)的第一步,我很难理解文件中缺少的内容,但我通过环顾四周了解了一些事情。
所以我做了一个child主题。这是 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 文件。我相信我必须调用按钮悬停,因为模板是 single-page 视差,并且我要修改的按钮在您单击另一个按钮之前不可见,该按钮允许另一个显示而无需将浏览器发送到另一个 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 库的调用已经出现在 header 中?
如果您提供的解决方案将删除工具提示而不是替换其内容,我将非常高兴。
提前致谢!
而不是使用
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()
方法也将事件与动态创建的元素绑定在一起。正如您在问题中提到的那样,只有单击另一个 button/link 才会创建按钮。
编辑: 测试了这个及其工作。我删除了第二个警报,因为有了它您将无法测试。
所以,我有一个安装了模板 (Zoo) 的 WordPress 网站。我的问题是我希望整个网站都是法语的,并且该模板中有三个按钮,title
标签在一个 js 文件中进行了深入编码,该文件位于已集成到模板中的插件中。
这些是我作为 Web 开发人员(我来自 C++)的第一步,我很难理解文件中缺少的内容,但我通过环顾四周了解了一些事情。
所以我做了一个child主题。这是 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 文件。我相信我必须调用按钮悬停,因为模板是 single-page 视差,并且我要修改的按钮在您单击另一个按钮之前不可见,该按钮允许另一个显示而无需将浏览器发送到另一个 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 库的调用已经出现在 header 中?
如果您提供的解决方案将删除工具提示而不是替换其内容,我将非常高兴。
提前致谢!
而不是使用
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()
方法也将事件与动态创建的元素绑定在一起。正如您在问题中提到的那样,只有单击另一个 button/link 才会创建按钮。
编辑: 测试了这个及其工作。我删除了第二个警报,因为有了它您将无法测试。