2011-11-29 30 views
0

說我有一個是這樣的:jQuery的上() - 如何抓住正確的目標?

<div id="myTop"> 
    <a href="#" data-role="button" data-theme="a">one</a> 
    <a href="#" data-role="button" data-theme="a">two</a> 
    ... 
</div> 

我想更改按鈕的點擊數據主題。我已經試過這樣:

$('#myTop').on("click", "a", function (event) { 
      $(event.target).attr('data-theme', "b"); 
     }); 

問題與此計算策略是,我不知道在什麼部分我其實點擊,可能是有時跨度和一個錨。我如何確保只改變標籤上的主題?

感謝所有幫助

Larsi

(編輯:刪除了此問題的更換主題皮膚部分)

+0

您指定。對()來'「一個」'所以被點擊錨,當你將只處理click事件的'selector'參數。檢查[.on()](http://api.jquery.com/on/)文檔。 –

回答

0

你可以嘗試這樣的事:

JS

$('#myTop').click(function() { 
    $(this).attr('data-theme', 'b').trigger('create'); 
}); 

HTML

<a href="#" data-role="button" data-theme="a" id="myTop">Theme a</a> 
+0

謝謝,簡單和容易。 – Larsi

0

你可以這樣做:

$('#myTop').find("a").on("click", function (event) { 
      $(this).data('theme', "b"); 
     }); 

是whay單擊事件只會火在一個標籤,你可以使用數據的方法更改數據ATTR jQuery提供的。

編輯:我沒有看到你的代碼的權利,做

$('#ID').on("click", "a", function() {}); 

將觸發事件,當你點擊容器用id過去了,這是一個錨,因爲你傳遞一個選擇器就像過濾器一樣。更多信息here