Javascript 动态onclick不是';t在铬上工作

Javascript 动态onclick不是';t在铬上工作,javascript,jquery,html,Javascript,Jquery,Html,我的js文件中有这段代码。当用户鼠标移过最后一个div块时,我添加了一个+和delete按钮,它在firefox中运行良好。但不是镀铬的 $(document).on('mouseover', '.item-block-row', function(){ if($(this).closest('#glaceblock').length || $(this).closest('#sorbetblock').length){ $('.deleteSorbGla

我的js文件中有这段代码。当用户鼠标移过最后一个div块时,我添加了一个+和delete按钮,它在firefox中运行良好。但不是镀铬的

$(document).on('mouseover', '.item-block-row', function(){
        if($(this).closest('#glaceblock').length || $(this).closest('#sorbetblock').length){
            $('.deleteSorbGlaceItem').remove();

            if($(this).is(':last-child')){
                var maximumCount = 10;
                if($('.layout-item-row').length >= maximumCount){
                    // Need to show only the delete icon for the last row
                    if($(this).closest('#sorbetblock').length){
                        $(this).append('<div class="col-md-1 col-sm-1 deleteSorbGlaceItem" ><div class="deleteIcon" onclick="deleteMultipleItem(' + projectId + ', this); "><img title="Supprimer" class="action_button image-button-dimensions" src="images/Picto_poubelle.png" alt="Supprimer" ></div></div>');
                    } 
                    return;
                }

                if($(this).closest('#sorbetblock').length){
                    $(this).append('<div class="col-md-1 col-sm-1 deleteSorbGlaceItem"><div class="addIcon" onclick="addItemBlock(' + projectId + ', \'editsorbet\', \'sorbet\');"><img title="Modifier le format" class="action_button image-button-dimensions" src="images/Picto_format.png" alt="format" ></div></div>');
                }

                if($(this).closest('#sorbetblock').length && $('#sorbetblock .sorbetitem').length <= 4){
                    // If row item is last and only 2 rows exists  adding only '+' button for adding an item .
                    // do nothing

                }   
                else {  
                     // If row item is last adding '+',' delete'  
                    if($(this).closest('#sorbetblock').length){
                        $(this).find('.deleteSorbGlaceItem').append('<div class="deleteIcon" onclick="deleteMultipleItem(' + projectId + ', this); "><img title="Supprimer" class="action_button image-button-dimensions" src="images/Picto_poubelle.png" alt="Supprimer" ></div>');    
                    } 
                }
            }
        }
    });
这在chrome中根本不起作用,但在firefox中很好。我已经使用jqueryclick和onclick两年多了。我从未在chrome中遇到过这个问题

代码中有什么错误吗?或者我遗漏了什么

编辑:

当我尝试jquery onclick时,我删除了内联的
onclick=“addItemBlock(“+projectd+”,“'editglace\”,“

这是

请检查以下内容:

问题是:函数$(document).on('mouseover','item block row'运行了很多时间

if(($(this).closest('#glaceblock').length || $(this).closest('#sorbetblock').length) && $(this).find('.deleteSorbGlaceItem').length ===0){
发件人:

鼠标指针移动时,mouseover事件被发送到元素 输入元素

这意味着,当鼠标在元素上时,代码将不间断地执行,因此,创建和删除图像将很快为
单击事件留出空间,函数中的一个简单的
控制台.log('here')
可以演示:

$(document).on('mouseover', '.item-block-row', function(){
    console.log('here');
这会消耗大量资源,降低网站速度


因此,将其替换为
$(document).on('mouseenter','.item block row',function(){…
将解决您的问题,因为当鼠标进入元素时,代码只执行一次,

您能创建一个小提琴吗?我正在创建now@SmitRavalFiddle到底是什么失败了?整个脚本?还是仅仅是点击处理程序?这就是
mouseover
的功能。我通过
$('.deleteSorbGlaceItem').remove()
。这是一个多调用问题吗?您可以检查DOM元素。$('.deleteSorbGlaceItem'))我同意,但这将如何防止onclick事件触发?你的建议很有效。非常感谢。我现在已经处理了。但我正在努力理解这个问题。在这种情况下,尝试绑定onclick并附加到父级而不是使用文档。单击谢谢!!这很有帮助。我看到了,不客气@Tan在我发帖时抢先给了我一个答案,所以我删除了它,但你想了解这个问题,所以我取消了发帖,希望这能有所帮助:)
$(document).on('mouseover', '.item-block-row', function(){
    console.log('here');