我想创建一个jQuery手机选择菜单,其中包含每个选项的图像。基本版本在docs中描述。我知道有一些jQuery插件可以实现这一点,但我只想用jQuery手机做。如何将图像添加到jQuery Mobile选择菜单项目
有人已经意识到这一点或有一个想法如何实现它?
我想创建一个jQuery手机选择菜单,其中包含每个选项的图像。基本版本在docs中描述。我知道有一些jQuery插件可以实现这一点,但我只想用jQuery手机做。如何将图像添加到jQuery Mobile选择菜单项目
有人已经意识到这一点或有一个想法如何实现它?
使用检查员(例如,萤火虫)来了解元素是如何创建的,并且在准备好之后将图像添加到那里的跨度。这是让jquery mobile无需修改JQM本身就可以使用的唯一方法。
另外 - 在jQuery Mobile alpha4的新版本中,默认情况下,选择是使用默认浏览器组件呈现的。
我有一个移动网络与这种情况下工作(但它不可用)。 试试这个:
1.创建CSS样式的图像,并给予这一条款:
CSS:
.eur {background: url(../images/flags/EuropeanUnion.png) 5px 50% no-repeat; padding: 3px 0 3px 35px; font-size: 16px;}
.usd {background: url(../images/flags/us.png) 5px 50% no-repeat; padding: 3px 0 3px 35px; font-size: 16px;}
.gbp {background: url(../images/flags/gb.png) 5px 50% no-repeat; padding: 3px 0 3px 35px; font-size: 16px;}
HTML:
<option value="eur" class="eur" selected="selected">Euro</option>
<option value="usd" class="usd">US Dollar</option>
<option value="gbp" class="gbp">GB Pound</option>
并检查CSS每个选项都有新的条款。
2.了解DOM:
在你的HTML,你有这样的事情:
<select data-mini="true" class="select-with-images">
<option value="eur" class="eur" selected="selected">Euro</option>
<option value="usd" class="usd">US Dollar</option>
<option value="gbp" class="gbp">GB Pound</option>
</select>
但jQuery Mobile的生成此:
<div class="ui-select">
<div data-theme="c" class="ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-c">
<span class="ui-btn-inner ui-btn-corner-all">
<span class="ui-btn-text">Euro</span>
<span class="ui-icon ui-icon-arrow-d ui-icon-shadow"></span>
</span>
<select class="select-with-images" data-mini="true">
<option selected="selected" class="eur" value="eur">Euro</option>
<option class="usd" value="usd">US Dollar</option>
<option class="gbp" value="gbp">GB Pound</option>
</select>
</div>
</div>
3. jQuery的
所以,你必须获得图像类所选选项,它每次改变选择了,首先当jQuery Mobile的渲染时间向span.ui-btn-tex
:
$(document).ready(function() {
//select-with-images
$('.select-with-images').on('change', function() {
var selection = $(this).val();
$(this).parents('.ui-select').find('.ui-btn-text').attr('class', 'ui-btn-text '+selection);
});
$(document).on('mouseover', function() {
$('.select-with-images').each(function() {
var selection = $(this).find(':selected').val();
$(this).parents('.ui-select').find('.ui-btn-text').attr('class', 'ui-btn-text '+selection);
});
});
});
这对我的作品。
我试过这个但不适合我。你可以给 http://jsfiddle.net的例子吗? – Miuranga 2013-04-01 08:12:24
有趣的方法。其中一个原因是不工作的原因是因为dom准备失踪,所以关闭}); (修复它)另一个原因(在IE中)是因为IE不支持console.log(),除非开发人员工具(F12)是打开的。在JS中删除该行将有所帮助。代码中还存在一个错误(固定)。我也更喜欢使用.addClass(选择);而不是鼠标悬停侦听器中的.attr('class','ui-btn-text'+ selection)。我无法复制你的具体背景图片,但这里有一个工作小提琴给你(或稍后来,像我一样)http://jsfiddle.net/ARZQw/11/ – Strixy 2013-05-10 17:42:10
这是另一个使用data-native-menu =“false”选项。 http://jsfiddle.net/Strixy/gKbDw/ – Strixy 2013-05-10 22:50:22
感谢您的建议,但我只是将其从选择菜单更改为对话框。这很容易。 – Christian 2011-04-04 08:41:41