wordpress Onclick功能“未定义”

tyu7yeag  于 11个月前  发布在  WordPress
关注(0)|答案(6)|浏览(188)

我是相当新的wordpress,并试图定义和调用一个函数,但不能让它工作。
下面的代码出现在一个php文件中,该文件是使用get_template_part从content.php文件调用的。

<div onclick="checkAllTopicCheckBoxes()"> </div>

字符串
我在function.php文件的底部添加了以下代码:

function checkAllTopicCheckBoxes() {
    alert("Hello! I am an alert box!!");
}


当我单击元素时,它返回:
(index):363 Uncaught ReferenceError:checkAllTopicCheckBoxes is not defined.
有人能帮帮我吗

vxbzzdmp

vxbzzdmp1#

使用OnClick或类似属性是非常糟糕的做法。
使用JavaScript事件监听器是一种更好的方法。以现代方式注册事件是处理事件的unobtrusive way。此外,要为目标注册多个事件监听器,您可以为同一目标调用addEventListener()。
超文本标记语言:

<div id="checkAllTopicCheckBoxes"> </div>

字符串
你的JavaScript应该看起来像这样:

document.getElementById ("checkAllTopicCheckBoxes").addEventListener ("click", myFunction, false);

function myFunction() {
  alert("Hello! I am an alert box!!");
}

HTML属性(如Onclick)应该避免,因为它涉及内容/结构和行为没有很好地分离,使bug更难找到。

vmdwslir

vmdwslir2#

你写的是一个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?

dw1jzc5e

dw1jzc5e3#

我和你一样犯了同样的错误。
如果我们使用onclick html属性,我们需要在同一个html元素中定义onclick函数(通过使用标签)。
最好的做法是使用JavaScript/jquery创建click事件监听器,而不是使用onclick html属性。

kokeuurv

kokeuurv4#

确保你的JavaScript函数定义在调用该方法的html元素之上:

<script>
function checkAllTopicCheckBoxes() 
{
    alert("Hello! I am an alert box!!");
}
</script>

<div onclick="checkAllTopicCheckBoxes()"> </div>

字符串
谢谢

zengzsys

zengzsys5#

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>';

?>

zzoitvuj

zzoitvuj6#

这也是抛出错误,如果onclick函数写在jquery内部

<script>
   function onclick(){this right} 

    $(document).ready(function(){
        function onclick(){
           this is wrong
        }
    })
</script>

字符串

相关问题