Javascript 动态onclick不是';t在铬上工作
我的js文件中有这段代码。当用户鼠标移过最后一个div块时,我添加了一个+和delete按钮,它在firefox中运行良好。但不是镀铬的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
$(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');