追加DOM丢失菜单下拉功能

时间:2018-11-09 23:37:26

标签: javascript jquery html drop-down-menu

我将添加动态DOM元素(在Ajax调用之后收集数据),如下所示。我已经将代码缩小到我认为最重要的范围:

if (in.peek() != '/')
{
    obj = Rational(top);
    cout << "Bad input format for operator >>. Aborting!" << endl;
    exit(1);
}

编辑:我的代码正在与第三方模板交互,在阅读答复后,我能够找到处理“点击事件”的文件。但是,基于上面显示的我自己的代码,我不确定如何调整模板代码以与动态附加的DOM一起使用。

这是处理点击的模板代码:(我可以看到'menuItemClick'函数是可能在此处理的地方,但是我如何基于此处应用'.on('',function())'调整该文件的写入方式?)

<!-- SideMenu HTML -->
<div id="sidebar-menu">
    <ul id="folders">
        <!-- AJAX DATA POPULATES MENU HERE -->

<!-- HTML File calling JS function -->
<script>
    $(document).ready(function() {
        getParentFolders('parentFolderTitle');
    });
</script>



// JS File function...
var parentFolders;  // Values retrieved from AJAX calls

function buildFolderMenu(index) {

    var markup = '<li class="has_sub">' +
                     '<a ... > parentFolders[index].Name + '</a>' +
                     '<ul ...>' +
                         '<li> SUB FOLDER TEST <li>' +
                     '</ul>' +
                 '</li>';

    $(#folders').append(markup);
}

1 个答案:

答案 0 :(得分:0)

这可能是因为在操作DOM之后,redraw事件未在浏览器上隐式触发。请参阅这篇文章,了解如何重绘,以便在UI上刷新您生成的DOM

Force DOM redraw/refresh on Chrome/Mac

如果这不起作用,请共享您的CSS以及DOM之前和之后的DOM生成屏幕截图