2012-08-22 224 views
0

我想要做的是創建一個按鈕並按下此按鈕,它將更改我的jQuery移動測試網站上的主題顏色。jQuery附加到元素

所以說,我的HTML父DIV看起來像這樣

<div id="firstPage" data-role="page"> 

我想它使上點擊,它附加data-theme="theme letter here" 到div,使其結束了這樣<div id="firstPage" data-role="page" data-theme="theme letter here">

OR

如果我像這樣開始div <div id="firstPage" data-role="page" data-theme="theme letter here">在按鈕上單擊,它將數據主題屬性更改爲另一個字母

這樣的東西,例如,像這樣

$('#themeBtn').click(function(){ 
     $('#firstPage').setAttribute("data-role","ANOTHER theme letter"); 
    }); 

$('#themeBtn').click(function(){ 
     $('#firstPage').append("data-role","a");  
    }); 

或這樣的事情。我該如何正確地去做這件事?

謝謝先進。

編輯*基礎上的反應,我用盡**

/////////////TESTING THEME BUTTON (check STACK OVERFLOW for answer) 
$('#themeBtn').click(function(){ 
    //$('#firstPage').jqmData("role","a"); 
    //$('#firstPage').attr("data-theme","a"); 
    //$('#firstPage').jqmData("theme","a"); 
    $('#firstPage').data('theme','a'); 
}); 

爲了確保該按鈕被解僱了,我註釋掉那些行,做一個簡單的

$('#themeBtn').click(function(){ 
    alert("foo"); 
    }); 

,果然它在按鈕點擊時發出警報,所以即時通訊正在工作(按鈕我的意思是)。

我加了的jsfiddle所以你可以看到它在行動(不工作的笑) http://jsfiddle.net/somdow/yRmKd/1/ 如果取消註釋警報,ITLL斷火,當你取消對其它線路(基於響應)它不更新。

回答

0

您可以使用jqmData方法:

$('#firstPage').jqmData('role', 'a'); 

docs

當jQuery Mobile的,jqmData和jqmRemoveData工作應該到位的jQuery核心的數據和removeData方法的使用 (注意 這包括$ .fn.data,$ .fn.removeData和$ .data, $ .removeData和$ .hasData實用程序),因爲它們會自動將 併入獲取和setti ng名稱空間數據屬性(即使 當前沒有命名空間正在使用)。

+2

不jQuery Mobile的使用jqmData()呢? docs:http://jquerymobile.com/test/docs/api/methods.html –

+0

@ZathrusWriter感謝指出,將編輯:) –

+0

你好,感謝您的答覆,我編輯我的帖子,以顯示什麼是基於答覆,而且不起作用。 – somdow

0

只需使用:$('#firstPage').data('theme', 'ANOTHER theme letter');

+1

是不是jQuery Mobile使用jqmData()代替? docs:http://jquerymobile.com/test/docs/api/methods.html –

+0

你好,謝謝你的回覆,我編輯我的帖子,以顯示什麼樣的答覆嘗試,並且它不工作。 – somdow

+0

我添加了一個jsFiddle.net/somdow/yRmKd/1/ – somdow

0

你可以做這樣的事情來設置屬性:

$('#themeBtn').on('click', function() { 
    $('#firstPage').attr("data-theme", "new Theme"); 
}); 
+0

你好,感謝您的回覆,我編輯我的帖子,以顯示什麼試圖根據回覆,並且它不工作 – somdow

+0

我添加了一個jsFiddle http ://jsfiddle.net/somdow/yRmKd/1/ – somdow

0

你試過嗎?

$('#themeBtn').click(function(){ 
    $('#firstPage').attr("data-role","ANOTHER theme letter"); 
}); 

這應該更新數據角色

+0

你好,丹尼爾,是的,我試過,並沒有更新。然後我嘗試.removeAttr並沒有刪除它。要確認按鈕是有針對性的並且發射了,我將它們全部評論並添加了一個警報('foo');並確保足夠的點擊它提醒,所以按鈕正在工作。只是似乎不能點擊主題變化 – somdow