Jquery mobile 有没有办法控制jQuery Mobile自定义选择菜单上关闭按钮的布局?

Jquery mobile 有没有办法控制jQuery Mobile自定义选择菜单上关闭按钮的布局?,jquery-mobile,select-menu,Jquery Mobile,Select Menu,我有一个自定义选择菜单,定义如下: <select name="DanceStyles" id="DanceStyles" multiple="multiple" data-native-menu="false"> 因此,我尝试重置按钮选项,调用refresh无效,并更改CSS。两者都不起作用,我遇到了奇怪的格式问题,关闭图标有一个换行符 有人知道正确的方法吗?在查看selectmenu插件的源代码后,我清楚地知道了这一点。它实际上并不是在使用按钮;锚定标记是buttonMark

我有一个自定义选择菜单,定义如下:

 <select name="DanceStyles" id="DanceStyles" multiple="multiple" data-native-menu="false">
因此,我尝试重置按钮选项,调用refresh无效,并更改CSS。两者都不起作用,我遇到了奇怪的格式问题,关闭图标有一个换行符


有人知道正确的方法吗?

在查看selectmenu插件的源代码后,我清楚地知道了这一点。它实际上并不是在使用按钮;锚定标记是buttonMarkup插件的源,该插件在Create事件触发之前已经创建

这意味着标记已经创建。我的第一次尝试看到我的问题,我试图破坏现有的标记太混乱了。删除按钮标记并使用我想要的选项重新创建它更干净、更可靠。注意,“search”选择器是JQ页面div的id,“DanceStyles”是我的原生select元素的id。我可以看到后者被用于菜单的id,这就是为什么我首先选择它,然后上下导航到锚点;我找不到其他可靠的方法去锚

$('#search').live('pagecreate', function (event) {
    $("#DanceStyles").selectmenu({
        create: function (event, ui) {
            $('ul#DanceStyles-menu').prev().find('a.ui-btn')
                .empty()
                .text('Done')
                .attr('class', 'ui-btn-right')
                .attr("data-" + $.mobile.ns + "iconpos", '')
                .attr("data-" + $.mobile.ns + "icon", '')
                .attr("title", 'Done')
                .buttonMarkup({ iconpos: 'left', icon: 'arrow-l' });
        }
    });
});
buttonMarkup插件在创建自身时使用A元素的文本和类值,但其他数据属性来自上一个buttonMarkup,必须删除,buttonMarkup创建子跨度的内部html也是如此。由于某种原因,没有重新创建title属性,所以我自己设置了它


PS如果有人知道一个更好的方法来实现这个按钮标记'删除'?例如,请让我们知道。

我实现这一点的方法是更改一点jquery移动代码,以便关闭按钮始终位于右侧,没有图标和文本,关闭
这不是我同意的最好方式。但是很管用。

我遇到了一个类似的案例,对此我做了一些卑鄙的攻击:p

$("#DanceStyles-button").click(function() {
  setTimeout(function(){
    $("#DanceStyles-dialog a[role=button]").removeClass("ui-icon-delete").addClass("ui-icon-check");
    $("#DanceStyles-dialog .ui-title").html("<span style='float:left;margin-left:25px' id='done'>Done</span>Dance Styles");
    $("#DanceStyles-dialog .ui-title #done").click(function() {
      $("#DanceStyles").selectmenu("close")
    });
  },1);
} );

我想不惜一切代价避免这样做,因为我知道我下次升级JQM时会忘记应用相同的mod:
$("#DanceStyles-button").click(function() {
  setTimeout(function(){
    $("#DanceStyles-dialog a[role=button]").removeClass("ui-icon-delete").addClass("ui-icon-check");
    $("#DanceStyles-dialog .ui-title").html("<span style='float:left;margin-left:25px' id='done'>Done</span>Dance Styles");
    $("#DanceStyles-dialog .ui-title #done").click(function() {
      $("#DanceStyles").selectmenu("close")
    });
  },1);
} );