按类将代码添加到WordPress菜单项

时间:2017-03-15 作者:mtm

我正在尝试添加

onclick="toggle_visibility(\'sub-menu\');"
进入WordPress中生成的特定菜单项的开始标记。我使用了以下函数来定位所有父菜单项,现在需要找到正确的js来动态添加它。

function menu_set_dropdown( $sorted_menu_items, $args ) {
    $last_top = 0;
    foreach ( $sorted_menu_items as $key => $obj ) {
        // it is a top lv item?
        if ( 0 == $obj->menu_item_parent ) {
            // set the key of the parent
            $last_top = $key;
        } else {
            $sorted_menu_items[$last_top]->classes[\'dropdown\'] = \'dropdown\';
        }
    }
    return $sorted_menu_items;
}
add_filter( \'wp_nav_menu_objects\', \'menu_set_dropdown\', 10, 2 );
我在我的页脚上试过这个,但不起作用。我可能使用了错误的脚本,也可能没有正确使用此脚本。

    <script type="text/javascript">
        $(\'.res-clearfix li.dropdown a\').click(function() {
            onclick="toggle_visibility(\'sub-menu\');"
        });
    </script>

1 个回复
SO网友:nibnut

是的,到目前为止,您应该使用新的事件处理程序,而不是向html标记添加属性。(所以您的第二种方法,在页脚中)

页脚代码不起作用的原因是您没有完全弄清楚如何从属性转换到处理程序表单。。。

当你说onclick="toggle_visibility(\'sub-menu\');" “onclick=”是一个html属性,其后双引号中的任何内容都是javascript代码。

因此,要将其变成jquery click处理程序,您只需要javascript代码部分:

<script type="text/javascript">
    $(function() { // <--- make sure we don\'t run our code before the page is ready!
        $(\'.res-clearfix li.dropdown a\').click(function() {
            toggle_visibility(\'sub-menu\');
        });
    });
</script>
希望这有帮助!