2013-02-08 39 views
2

我想在jQuery Mobile的列表視圖中有我讀取/未讀消息的樣式集。更改內部跨度裏面的內容的css

    <ul data-role="listview" data-theme="c" id="#messageList" style="padding-top:10%;"> 

        <li data-icon="false"> 
         <a href="#" onclick="messageClick()"> 
         <p> 
          <span style="float:left;clear:left;font-weight: bold;text-decoration:underline;color:blue;white-space:pre-wrap; width:30ex">Some unread text</span> 
          <span style="float:right;font-weight: bold;">08/02/13</span> 
         </p> 
         </a> 
        </li> 
        ..... 
        </ul> 

內部messageClick()我:

function messageClick(){  
    $(this).findclosest("span").css("font-weight","normal"); 
} 

但它似乎並沒有工作。我哪裏錯了?

+0

你似乎混淆[.closest()](HTTP://api.jquery .com/closest /)和[.find()](http://api.jquery.com/find/)。沒有'.findclosest'功能。在這種情況下,您希望'.find()'搜索後代,'nearest()'搜索祖先。 – 2013-02-08 14:56:52

回答

4

findclosest不是功能。看看你的JavaScript控制檯,我相信你會得到一個錯誤。此外,this可能未設置爲元素,而是您在全局範圍內調用它的窗口。你可能需要的是更多的東西一樣:<a href="#" class="messageClick">

$('#messagelist').on('click','a.messageClick', function() { 
    $(this).parent().find('span').first().css(...); 
    return false; 
} 

注意,我迎上了父母,然後找到的第一個跨度。我這樣做是因爲塊不能存在於a之內,所以不同的瀏覽器可能會以不同的方式處理。我強烈建議使用類而不是內聯樣式和基於這些類而不是一些隨機DOM層次結構進行定位。你的代碼可以使用一些嚴肅的清理!

+0

我的代碼代碼肯定使用一些清理。我不擅長CSS,只是初學者。至於你的答案,這是有道理的,但不起作用。也許我在搞別的東西。 – 2013-02-09 13:45:47

2

什麼是findclosest()它在jQuery文檔中不存在。如果您要訪問下<li第一跨度>這樣的事情應該工作:

function messageClick(){  
    $(this).find("p > span:first").css("font-weight","normal"); 
} 

如果你想改變這兩個跨度,你可以刪除選擇的:first,甚至只是$(this).find("span")去,如果你不沒有多重跨度。

0

你可能想使用.find,因爲我不認爲存在.findclosest(.closest雖然做,但不是爲)

2

你想find()findclosest() - 不存在:

function messageClick(){  
    $(this).find("span").css("font-weight","normal"); 
} 
1

jQuery Mobile不能很好地與onclick =「...或occhange =」...事件,他們是與jQM頁面事件觸發衝突。

您應該手動綁定click事件liek這樣的:

$(document).on('pagebeforeshow', '#index', function(){  
    $(document).on('click', '#messageList li a', function(){ 
     $(this).find("span:first").css("font-weight","normal"); 
    });  
}); 

而這裏的工作sjFiddle例如:http://jsfiddle.net/Gajotres/Speu2/

+0

我認爲它只與jQM有關。你的小提琴很好用,但同樣的東西在我的項目中不起作用。想知道爲什麼。 – 2013-02-09 13:46:50