Jquery mobile 动态更改jquery移动色样

Jquery mobile 动态更改jquery移动色样,jquery-mobile,themes,Jquery Mobile,Themes,我想用javascript动态更改jquery mobile buttons颜色样本,但我找不到方法(除了删除和添加所有类和事件处理程序,但这太麻烦了)。 做这件事最好的方法是什么?我确实做了这样的事情: (所有表单元素) JS(可能需要一些小的调整才能得到你想要的东西) HTML(可能需要一些小的调整来获得您想要的内容) 选择一个主题: 主题A 主题B 主题C 主题D 主题E 形式元素 文本输入: 文本区域: 搜索输入: 翻转开关: 关 在…上 滑块: 选择您喜欢的零食: 奇多 多

我想用javascript动态更改jquery mobile buttons颜色样本,但我找不到方法(除了删除和添加所有类和事件处理程序,但这太麻烦了)。

做这件事最好的方法是什么?

我确实做了这样的事情:

  • (所有表单元素)
JS(可能需要一些小的调整才能得到你想要的东西)

HTML(可能需要一些小的调整来获得您想要的内容)



选择一个主题:
主题A
主题B
主题C
主题D
主题E

形式元素 文本输入: 文本区域: 搜索输入: 翻转开关: 关 在…上 滑块: 选择您喜欢的零食: 奇多 多丽托斯 菲多斯 太阳片 字体样式: B 我 U 选择宠物: 猫 狗 仓鼠 蜥蜴 布局视图: 列表 网格 画廊 选择运输方式: 标准:7天 高峰期:3天 快递:第二天 一夜之间 贵国: 阿拉巴马州 阿拉斯加州 亚利桑那州 阿肯色州 加利福尼亚 科罗拉多州 康涅狄格州 特拉华州 佛罗里达州 佐治亚州 夏威夷 爱达荷州 伊利诺伊州 印第安纳州 爱荷华州 堪萨斯州 肯塔基州 路易斯安那州 缅因州 马里兰 马萨诸塞州 密歇根 明尼苏达州 密西西比 密苏里州 蒙大拿 内布拉斯加州 内华达州 新罕布什尔州 新泽西州 新墨西哥州 纽约 北卡罗来纳州 北达科他州 俄亥俄州 奥克拉荷马 俄勒冈 宾夕法尼亚 罗德岛 南卡罗来纳州 南达科他州 田纳西州 得克萨斯州 犹他州 佛蒙特州 弗吉尼亚州 华盛顿 西弗吉尼亚州 威斯康星州 怀俄明州 选择运输方式: 自定义菜单示例 标准:7天 高峰期:3天 快递:第二天 一夜之间 取消 提交 更多信息请参见本节
  • 表单元素
  • $('input[name=theme-options]').change(function() { var currentTheme = $('#home').attr('data-theme'); var selectedTheme = $(this).val(); alert('CT '+currentTheme+' ST '+selectedTheme); $('.ui-body-' + currentTheme).each(function(){ $(this).removeClass('ui-body-' + currentTheme).addClass('ui-body-' + selectedTheme); }); $('.ui-btn-up-' + currentTheme).each(function(){ $(this).removeClass('ui-btn-up-' + currentTheme).addClass('ui-btn-up-' + selectedTheme); }); $('.ui-btn-down-' + currentTheme).each(function(){ $(this).removeClass('ui-btn-down-' + currentTheme).addClass('ui-btn-down-' + selectedTheme); }); $('#home').find('*[data-theme]').each(function(index){ $(this).attr('data-theme',selectedTheme); }); $('#home').attr('data-theme', selectedTheme).removeClass('ui-body-' + currentTheme).addClass('ui-body-' + selectedTheme).trigger('create'); });
<div data-role="page" id="home" data-theme="a"> 
    <div data-role="content">
        <div class="content-primary">             
            <p>
                <div data-role="fieldcontain">
                    <fieldset data-role="controlgroup">
                        <legend>Choose a Theme:</legend>
                        <input type="radio" name="theme-options" id="theme-option-a" value="a" checked="checked" data-theme="a" />
                        <label for="theme-option-a" data-theme="a">Theme A</label>

                        <input type="radio" name="theme-options" id="theme-option-b" value="b" data-theme="b" />
                        <label for="theme-option-b" data-theme="b">Theme B</label>

                        <input type="radio" name="theme-options" id="theme-option-c" value="c" data-theme="c" />
                        <label for="theme-option-c" data-theme="c">Theme C</label>

                        <input type="radio" name="theme-options" id="theme-option-d" value="d" data-theme="d" />
                        <label for="theme-option-d" data-theme="d">Theme D</label>

                        <input type="radio" name="theme-options" id="theme-option-e" value="e" data-theme="e" />
                        <label for="theme-option-e" data-theme="e">Theme E</label>
                    </fieldset>
                </div>
            </p>

            <form action="#" method="get"> 

                <h2>Form elements</h2> 

                <div data-role="fieldcontain"> 
                    <label for="name">Text Input:</label> 
                    <input type="text" name="name" id="name" value=""  /> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="textarea">Textarea:</label> 
                    <textarea cols="40" rows="8" name="textarea" id="textarea"></textarea> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="search">Search Input:</label> 
                    <input type="search" name="password" id="search" value=""  /> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="slider2">Flip switch:</label> 
                    <select name="slider2" id="slider2" data-role="slider"> 
                        <option value="off">Off</option> 
                        <option value="on">On</option> 
                    </select> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="slider">Slider:</label> 
                    <input type="range" name="slider" id="slider" value="0" min="0" max="100"  /> 
                </div> 

                <div data-role="fieldcontain"> 
                    <fieldset data-role="controlgroup"> 
                        <legend>Choose as many snacks as you'd like:</legend> 
                        <input type="checkbox" name="checkbox-1a" id="checkbox-1a" class="custom" /> 
                        <label for="checkbox-1a">Cheetos</label> 

                        <input type="checkbox" name="checkbox-2a" id="checkbox-2a" class="custom" /> 
                        <label for="checkbox-2a">Doritos</label> 

                        <input type="checkbox" name="checkbox-3a" id="checkbox-3a" class="custom" /> 
                        <label for="checkbox-3a">Fritos</label> 

                        <input type="checkbox" name="checkbox-4a" id="checkbox-4a" class="custom" /> 
                        <label for="checkbox-4a">Sun Chips</label> 
                    </fieldset> 
                </div> 

                <div data-role="fieldcontain"> 
                    <fieldset data-role="controlgroup" data-type="horizontal"> 
                        <legend>Font styling:</legend> 
                        <input type="checkbox" name="checkbox-6" id="checkbox-6" class="custom" /> 
                        <label for="checkbox-6">b</label> 

                        <input type="checkbox" name="checkbox-7" id="checkbox-7" class="custom" /> 
                        <label for="checkbox-7"><em>i</em></label> 

                        <input type="checkbox" name="checkbox-8" id="checkbox-8" class="custom" /> 
                        <label for="checkbox-8">u</label> 
                    </fieldset> 
                </div> 

                <div data-role="fieldcontain"> 
                    <fieldset data-role="controlgroup"> 
                        <legend>Choose a pet:</legend> 
                        <input type="radio" name="radio-choice-1" id="radio-choice-1" value="choice-1" checked="checked" /> 
                        <label for="radio-choice-1">Cat</label> 

                        <input type="radio" name="radio-choice-1" id="radio-choice-2" value="choice-2"  /> 
                        <label for="radio-choice-2">Dog</label> 

                        <input type="radio" name="radio-choice-1" id="radio-choice-3" value="choice-3"  /> 
                        <label for="radio-choice-3">Hamster</label> 

                        <input type="radio" name="radio-choice-1" id="radio-choice-4" value="choice-4"  /> 
                        <label for="radio-choice-4">Lizard</label> 
                    </fieldset> 
                </div> 

                <div data-role="fieldcontain"> 
                    <fieldset data-role="controlgroup" data-type="horizontal"> 
                        <legend>Layout view:</legend> 
                        <input type="radio" name="radio-choice-b" id="radio-choice-c" value="on" checked="checked" /> 
                        <label for="radio-choice-c">List</label> 
                        <input type="radio" name="radio-choice-b" id="radio-choice-d" value="off" /> 
                        <label for="radio-choice-d">Grid</label> 
                        <input type="radio" name="radio-choice-b" id="radio-choice-e" value="other" /> 
                        <label for="radio-choice-e">Gallery</label> 
                    </fieldset> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="select-choice-1" class="select">Choose shipping method:</label> 
                    <select name="select-choice-1" id="select-choice-1"> 
                        <option value="standard">Standard: 7 day</option> 
                        <option value="rush">Rush: 3 days</option> 
                        <option value="express">Express: next day</option> 
                        <option value="overnight">Overnight</option> 
                    </select> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="select-choice-3" class="select">Your state:</label> 
                    <select name="select-choice-3" id="select-choice-3"> 
                        <option value="AL">Alabama</option> 
                        <option value="AK">Alaska</option> 
                        <option value="AZ">Arizona</option> 
                        <option value="AR">Arkansas</option> 
                        <option value="CA">California</option> 
                        <option value="CO">Colorado</option> 
                        <option value="CT">Connecticut</option> 
                        <option value="DE">Delaware</option> 
                        <option value="FL">Florida</option> 
                        <option value="GA">Georgia</option> 
                        <option value="HI">Hawaii</option> 
                        <option value="ID">Idaho</option> 
                        <option value="IL">Illinois</option> 
                        <option value="IN">Indiana</option> 
                        <option value="IA">Iowa</option> 
                        <option value="KS">Kansas</option> 
                        <option value="KY">Kentucky</option> 
                        <option value="LA">Louisiana</option> 
                        <option value="ME">Maine</option> 
                        <option value="MD">Maryland</option> 
                        <option value="MA">Massachusetts</option> 
                        <option value="MI">Michigan</option> 
                        <option value="MN">Minnesota</option> 
                        <option value="MS">Mississippi</option> 
                        <option value="MO">Missouri</option> 
                        <option value="MT">Montana</option> 
                        <option value="NE">Nebraska</option> 
                        <option value="NV">Nevada</option> 
                        <option value="NH">New Hampshire</option> 
                        <option value="NJ">New Jersey</option> 
                        <option value="NM">New Mexico</option> 
                        <option value="NY">New York</option> 
                        <option value="NC">North Carolina</option> 
                        <option value="ND">North Dakota</option> 
                        <option value="OH">Ohio</option> 
                        <option value="OK">Oklahoma</option> 
                        <option value="OR">Oregon</option> 
                        <option value="PA">Pennsylvania</option> 
                        <option value="RI">Rhode Island</option> 
                        <option value="SC">South Carolina</option> 
                        <option value="SD">South Dakota</option> 
                        <option value="TN">Tennessee</option> 
                        <option value="TX">Texas</option> 
                        <option value="UT">Utah</option> 
                        <option value="VT">Vermont</option> 
                        <option value="VA">Virginia</option> 
                        <option value="WA">Washington</option> 
                        <option value="WV">West Virginia</option> 
                        <option value="WI">Wisconsin</option> 
                        <option value="WY">Wyoming</option> 
                    </select> 
                </div> 

                <div data-role="fieldcontain"> 
                    <label for="select-choice-a" class="select">Choose shipping method:</label> 
                    <select name="select-choice-a" id="select-choice-a" data-native-menu="false"> 
                        <option>Custom menu example</option> 
                        <option value="standard">Standard: 7 day</option> 
                        <option value="rush">Rush: 3 days</option> 
                        <option value="express">Express: next day</option> 
                        <option value="overnight">Overnight</option> 
                    </select> 
                </div> 

                <div class="ui-body ui-body-b"> 
                    <fieldset class="ui-grid-a"> 
                        <div class="ui-block-a"><button type="submit" data-theme="d">Cancel</button></div> 
                        <div class="ui-block-b"><button type="submit" data-theme="a">Submit</button></div> 
                    </fieldset> 
                </div> 
            </form> 
        </div><!--/content-primary -->        

        <div class="content-secondary"> 

            <div data-role="collapsible" data-collapsed="true" data-theme="b"> 

                <h3>More in this section</h3> 

                <ul data-role="listview" data-theme="c" data-dividertheme="d"> 

                    <li data-role="list-divider">Form elements</li> 
                    <li><a href="docs-forms.html">Form basics</a></li> 
                    <li data-theme="a"><a href="forms-all.html">Form element gallery</a></li> 
                    <li><a href="texts/index.html">Text inputs</a></li> 
                    <li><a href="forms-search.html">Search inputs</a></li> 
                    <li><a href="forms-slider.html">Slider</a></li> 
                    <li><a href="forms-switch.html">Flip toggle switch</a></li> 
                    <li><a href="radiobuttons/index.html">Radio buttons</a></li> 
                    <li><a href="checkboxes/index.html">Checkboxes</a></li> 
                    <li><a href="selects/index.html">Select menus</a></li> 
                    <li><a href="forms-themes.html">Theming forms</a></li> 
                    <li><a href="forms-all-native.html">Native form elements</a></li> 
                    <li><a href="forms-sample.html">Submitting forms</a></li> 
                    <li><a href="plugin-eventsmethods.html">Plugin methods</a></li> 

                </ul> 
            </div> 
        </div>        
    </div>
</div>
$.fn.changeColorSwatch = function(theme, type) {
  if (!type) {
    type = 'theme';
  }
  var currentTheme = this.attr('data-' + type);
  if (!currentTheme) {
    currentTheme = 'c';
  }
  this.attr('data-' + type, theme);
  var regex = new RegExp('^ui-(.*)-' + currentTheme + '$');
  var classes = $.extend({}, this[0].classList);
  var i = classes.length;
  while (i--) {
    var match = classes[i].match(regex);
    if (match) {
      this.removeClass(match[0]);
      this.addClass('ui-' + match[1] + '-' + theme);
    }
  }
};
      if(this.attr('type') == 'button'){
      this.parent().changeColorSwatch(theme, type);
  }
//set button active
$(this).parent().addClass('ui-btn-active');
//set button inactive
$(this).parent().removeClass('ui-btn-active');
<button type="button" id="yourbutton">Hello</button>
$('#yourbutton').parent().find('.ui-btn-inner').css("background-color",yournewcolor);
$.mobile.changeGlobalTheme = function(theme)
    {
        // These themes will be cleared, add more
        // swatch letters as needed.
        var themes = " a b c d e";

        // Updates the theme for all elements that match the
        // CSS selector with the specified theme class.
        function setTheme(cssSelector, themeClass, theme)
        {
            $(cssSelector)
                    .removeClass(themes.split(" ").join(" " + themeClass + "-"))
                    .addClass(themeClass + "-" + theme)
                    .attr("data-theme", theme);
        }

        // Add more selectors/theme classes as needed.
        setTheme(".ui-mobile-viewport", "ui-overlay", theme);
        setTheme("[data-role='page']", "ui-page-theme", theme);
        setTheme("[data-role='header']", "ui-bar", theme);
        setTheme("[data-role='listview'] > li", "ui-bar", theme);
        setTheme(".ui-btn", "ui-btn-up", theme);
        setTheme(".ui-btn", "ui-btn-hover", theme);
    };