2012-08-22 70 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