我是wordpress的新手,我试图定义和调用函数,但无法使它工作。
以下代码出现在使用get_template_part从content.php文件调用的php文件中。
<div onclick="checkAllTopicCheckBoxes()"> </div>
我将以下代码添加到function.php文件的底部:
function checkAllTopicCheckBoxes() {
alert("Hello! I am an alert box!!");
}
当我单击它返回的元素时:
(索引):363未捕获的ReferenceError:未定义checkAllTopicCheckBoxes。
谁能帮帮我吗?
使用OnClick或类似属性是非常糟糕的做法。
使用Javascript事件监听器是一种更好的方法。以现代方式注册活动是处理事件的unobtrusive way。另外,要为目标注册多个事件侦听器,可以为同一目标调用addEventListener()。
HTML:
<div id="checkAllTopicCheckBoxes"> </div>
你的JavaScript应该是这样的:
document.getElementById ("checkAllTopicCheckBoxes").addEventListener ("click", myFunction, false);
function myFunction() {
alert("Hello! I am an alert box!!");
}
应该避免HTML属性(例如Onclick),因为它涉及内容/结构和行为没有很好地分离,使得更难找到bug。
你写的是一个Javascript函数,它必须用HTML代码包围。你有没有把你的功能写成:
echo('<script>function checkAllTopicCheckBoxes() { alert("Hello! I am an alert box!!");}</script>');
此外,我认为Wordpress必须准备好一些功能来添加脚本。试着看看wp_enqueue_script (string $handle, string $src = false, array $deps = array(), string|bool|null $ver = false, bool $in_footer = false);
编辑:我刚发现这个问题,它可能会回答你的问题:How to write a Javascript function inside the functions.php of Wordpress?
function checkAllTopicCheckBoxes() {
alert("Hello! I am an alert box!!");
}
必须不在<? ... ?>
,必须有<script>...</script>
包装,例如,
======== sample.php =======
<?
// php script is here
?>
<script>
function checkAllTopicCheckBoxes() {
alert("Hello! I am an alert box!!");
}
</script>
或者如果你想在PHP脚本中包含js,你必须像这样echo
======== sample.php =======
<?
// php script is here
echo '<script>';
echo 'function checkAllTopicCheckBoxes() {';
echo ' alert("Hello! I am an alert box!!");';
echo '}';
echo '</script>';
?>
我遇到了和你一样的错误。
如果我们使用onclick html属性,我们需要在同一个html元素中定义该onclick函数(通过使用标记)。
最好使用javascript / jquery创建click事件侦听器,而不是使用onclick html属性。