我有一個<div>
完整的<ul>
元素。當我將鼠標懸停在這些元素之一上時,我想對HTML標記進行調整。更改html元素懸停標記
我的標準<ul>
項目是這樣的:
<ul>
<li class="category"><img src="source" /></li>
<li class="time days"><p>text</p></li>
<li class="participant participant_one"><p><img src="source" />text</p></li>
<li class="divider"><p>:</p></li>
<li class="participant participant_two"><p><img src="source" />text</p></li>
<li class="event_type"><p>Event</p></li>
<li class="event_name"><p>text</p></li>
<li class="hot"><p>945°</p></li>
<li class="rating"><p>4.99</p></li>
<li class="comments"><p>7.544</p></li>
<li class="marked"></li>
</ul>
現在懸停我希望這件看起來像這樣:
<ul class="expanded">
<li class="category"><img src="img/headlines_category_icon_1.png"></li>
<li class="time days"><p>29.05</p></li>
<li class="icon participant_one_icon"><img src="img/user_icon_36-36_1.png"></li>
<li class="icon participant_two_icon"><img src="img/user_icon_36-36_1.png"></li>
<li class="headline">
<ul>
<li class="participant participant_one"><p>Text</p></li>
<li><p>:</p></li>
<li class="participant participant_two"><p>Text</p></li>
</ul>
<p><span>Event</span> Eventname</p>
</li>
<li class="actions">
<ul class="actions_ul">
<li class="bookmark"><a href="#">Bookmark</a></li>
<li class="comment"><a href="#">Comment</a></li>
<li class="share"><a href="#">Share</a></li>
</ul>
</li>
</ul>
我想做到這一點使用jQuery和我嘗試以下操作:
$('div.match_entries ul').mouseenter(function() {
$(this).addClass('expanded');
category = $(this).children('li.category');
time = $(this).children('li.time');
participant_one_original = $(this).children('li.participant_one');
participant_one_icon = $(this).children('li.participant_one img');
participant_one = $(this).children('li.participant_one').remove('img');
participant_two_original = $(this).children('li.participant_two');
participant_two_icon = $(this).children('li.participant_two img');
participant_two = $(this).children('li.participant_two').remove('img');
divider = $(this).children('li.divider');
event_type_original = $(this).children('li.event_type');
event_type = $(this).children('li.event_type p').text();
event_name_original = $(this).children('li.event_name');
event_name = $(this).children('li.event_name p').text();
hot = $(this).children('li.hot');
rating = $(this).children('li.rating');
comment = $(this).children('li.comment');
marked = $(this).children('li.marked');
$(this).empty();
$(this).append($(category));
$(this).append($(time));
$(this).append('<li class="icon participant_one_icon'+$(participant_one_icon)+'</li>');
$(this).append('<li class="icon participant_two_icon'+$(participant_two_icon).text()+'</li>');
$(this).append('<li class="headline"><ul>'+$(participant_one)+'<li><p>:</p></li>'+$(participant_two)+'</ul><p><span>'+$(event_type)+'</span> '+$(event_name)+'</p></li>');
}).mouseleave(function(){
$(this).removeClass('expanded');
$(this).empty();
// APPEND ORIGINAL STUFF
})
不好用... $(category)
和$(time)
附加在正確的方式,但其他包括爲object Object
任何提示?
另一種選擇:擴展和非擴展版本添加的標記。使用display:none隱藏展開的版本。然後使用你的Javascript來切換懸停元素的顯示。 – 2012-08-31 13:05:34
指定對象的內容,例如可以是'$($(event_type_original))。html()'或類似的 –
主要提示是,'object Object'是你在沒有自己覆蓋的對象上調用'ToString'時得到的東西爲ToString。當然,如果你在一個字符串上下文中使用一個對象,它會隱式地調用ToString。所以問題是你正在處理一個對象(實際上是一個jquery對象),就好像它是一個字符串,當它不是,並且Alex Ball說你通常需要對象的方法或屬性。 – Chris