2011-11-19 46 views
2

我在JavaScript函数中动态更新div的“title”属性。如果我检索新属性,它会更新,但在屏幕上,鼠标悬停工具提示中仍会显示旧的“标题”。这是一个错误?有没有办法解决这个问题?动态更新“标题”属性

// Toggle and slide LinkCards 
    if (toggle_class == 'ico_minim') { 
     $(toggle).removeClass('ico_minim'); 
     $(toggle).addClass('ico_expand'); 
     $('#'+card_id).attr('title','Expand'); 
     alert(toggle_class+' '+$('#'+card_id).attr('title')); 
     $('#'+card_id).css('height', min_height); 
     slide_linkcards(card_id, height_adjust, toggle_class); 
    } 
    else { 
     $(toggle).removeClass('ico_expand'); 
     $(toggle).addClass('ico_minim'); 
     alert('minimize'); 
     $('#'+card_id).attr('title','Minimize'); 
     alert(toggle_class+' '+$('#'+card_id).attr('title')); 
     $('#'+card_id).css('height', exp_height); 
     slide_linkcards(card_id, height_adjust, toggle_class); 
    } 

我可以在代码中更改什么来使标题显示?

+1

我不认为'div'有'title'属性。如果要将数据存储在对象中,请尝试使用'.data()'方法。 – Blender

+0

你在什么浏览器上。在Chrome上运行良好。 – bozdoz

+2

@Blender实际上 - 在HTML5中,无论如何 - [任何元素都可以有title属性](http://dev.w3.org/html5/spec/elements.html#global-attributes)。 – sdleihssirhc

回答

0

此代码有效。更改$(切换)而不是$('#'+ card_id)的标题。

// Toggle and slide LinkCards 
    if (toggle_class == 'ico_minim') { 
     $(toggle).removeClass('ico_minim'); 
     $(toggle).addClass('ico_expand'); 
     $(toggle).attr('title','Expand'); 
     /* alert(toggle_class+' '+$('#'+card_id).attr('title')); */ 
     $('.link_drop_box', $('#'+card_id)).css('visibility', 'hidden'); 
     $('#'+card_id).css('height', min_height); 
     slide_linkcards(card_id, height_adjust, toggle_class); 
     show_buttons(card_id, 'MINIMIZED'); 
    } 
    else { 
     $(toggle).removeClass('ico_expand'); 
     $(toggle).addClass('ico_minim'); 
     $(toggle).attr('title','Minimize'); 
     /* alert(toggle_class+' '+$('#'+card_id).attr('title')); */ 
     $('.link_drop_box', $('#'+card_id)).css('visibility', 'visible'); 
     $('#'+card_id).css('height', exp_height); 
     slide_linkcards(card_id, height_adjust, toggle_class); 
     show_buttons(card_id, 'EXPANDED'); 
    }