2013-02-03 120 views
2

的「id」屬性我有jQuery Mobile的Web應用程序列表視圖此列表視圖作出這樣的元素:的OnClick得到「A」標籤

<li id='search_r'> 
    <a href='#' id='$id' class='s_result'></a> 
</li> 
<li id='search_r'> 
    <a href='#' id='$id' class='s_result'></a> 
</li> 

元素的數量取決於搜索結果的數量,它不僅僅是這兩個。 當我點擊元素列表視圖,在這種情況下:

<li></li> 

我需要2件事情發生,一個是從「一」的標籤分配這個特定的「禮」標籤上的「ID」 ATTR(點擊一個)到我稱爲'search_r'的全局變量。點擊事件工作正常,但從我無法做到的「a」標籤獲取屬性。

這裏是我的JS:

$("#cc_page").ready(function(){ 
    $("#search_r").live('click', function(){ 
     search_r = $(this).attr('id'); 
     window.location.href = "http://imes.********.com/app/userpanel.html#sfpp_page"; 
    }); 
}); 

我知道 「這」 不是解決辦法。我真的對js很陌生,所以我就問爲什麼這麼荒謬的問題:)

+2

多個'id ='search_r''是一個** no-no **。 – Oleg

+1

['.live()'](http://api.jquery.com/live/)已棄用。改用['.on()'](http://api.jquery.com/on/)。 – Antony

+0

實際上嘗試使用.on()沒有運氣。而在jQuery 1.8.2中,它工作得很好。 –

回答

3

您遇到的第一個問題是重複的search_r id屬性,這是無效的。這些應該改爲類。此外,您應該使用on()與委託處理程序,因爲live()已從最新版本的jQuery中刪除。試試這個:

<li class='search_r'> 
    <a href='#' id='$id' class='s_result'></a> 
</li> 
<li class='search_r'> 
    <a href='#' id='$id' class='s_result'></a> 
</li> 
$("#cc_page").on('click', '.search_r', function(){ 
    var search_r = $('a', this).attr('id'); 
    console.log(search_r); // just to check it works 

    // I assume this is just for testing, otherwise leaving the page 
    // immediately on click renders getting the id completely moot. 
    //window.location.href = "http://imes.********.com/app/userpanel.html#sfpp_page"; 
}); 

我還假設在你的HTML的$id是某種形式的模板引擎,其被解釋?如果不是,那麼這些也將需要做出獨特的。

1

.live從v1.7開始在jQuery中被棄用,並且在v1.9中被刪除。

您應該將其替換爲.on()

.on有2個語法爲綁定元素,而.live只有1

如果該元素存在於你要綁定的時候,你做這樣的:

$('.element').on('click', function(){ 
    ....... 
}); 

你甚至可以使用速記:

$('.element').click(function(){ 
    ......... 
}); 

如果元素不會在時間存在,或者新的將被添加(這是.live已正常使用)的,你需要使用「事件代理」:

$(document).on('click', '.element', function(){ 
    ............. 
}); 

注意:您要綁定到最接近的靜態元素,不總是document

與此同時,jQuery Migrate plugin可用於恢復.live()功能,如果您將jQuery升級到最新版本。

1

window.location.href導致瀏覽器發出新請求。新頁面加載時,任何變量都將被重置。

你的目標是search_r

+0

現在這是非常重要的信息,非常感謝! –

+0

我想把這個值賦給全局變量:search_r,所以點擊結果後,新頁面將被打開,全局變量中的id將被用來加載這個新頁面所需的數據。 –

+0

全局變量的作用域限於一個請求/響應。如果你需要保持比這個值更長的時間,你應該考慮像通過查詢字符串將它傳遞到新頁面,或者甚至改變一些東西來使用Ajax。 – dirn