请考虑以下相册示例。
专辑的第一页和最后一页是专辑点差的一半。我将attr('data-width')
和attr('data-width_correct')
设置为进行比较
例如 - checkImageDimesions()
//Define if first or last page
if($(this).is(':first-child') || $(this).is(':last-child'))
{
$(this).find('img').attr('data-height_correct' , maxHeight);
$(this).find('img').attr('data-width_correct' , maxWidth / 2);
} else{
$(this).find('img').attr('data-height_correct' , maxHeight);
$(this).find('img').attr('data-width_correct' , maxWidth);
}
这可以按预期工作,使用正确的值更新数据。我的下一步是width > width_correct
我想添加一个调整大小的类。
if($(this).find('img').data('width') > $(this).find('img').data('width_correct'))
{
$(this).addClass('resize');
}
调用此函数发生在jQuery .sortable()的成功。在第一次排序时,这可以正常工作,但是在后续排序中,未正确调整大小的初始图像会保留.resize
,并且在width > width_correct
上返回false的任何新图像都不会被分配resize
可排序
$("#sortable").sortable(
{
success: function(){checkImageDimension()}
}
答案 0 :(得分:1)
附加对象数据(不是简单的字符串,数字, 或者boolean)到DOM节点经常会导致Internet中的内存泄漏 资源管理器。那是因为DOM节点不是本机Javascript对象 在IE中,所以它不了解如何垃圾收集的东西 附在他们身上。
如果您只需要DOM节点上的简单标记或数字,则可以使用 要么attr(“x_mycount”,1),要么只在DOM节点上设置属性 使用this.x_mycount代替。 (小心选择属性或 属性名称,因为你在DOM名称空间中,你可能会破坏 如果你不小心的话。)尽管使用.data()是最安全的。
答案 1 :(得分:0)
要更新数据属性,只需向数据函数添加第二个参数。
$('#elementID').data('width-correct', '400');
那就是它,它会更新。