Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery移动多选点击事件_Jquery_Mobile_Jquery Mobile_Multi Select - Fatal编程技术网

jQuery移动多选点击事件

jQuery移动多选点击事件,jquery,mobile,jquery-mobile,multi-select,Jquery,Mobile,Jquery Mobile,Multi Select,如何在jQuery Mobile multi-select上触发单击事件 我试图添加一个关闭按钮的选择选项,因为我不觉得X关闭按钮是直截了当的。这里讨论这个话题http://stackoverflow.com/questions/10004719/jquery-mobile-multi-select-box 答案是: 您可以添加Close作为选项,然后在单击对话框Close方法时触发该方法 如何触发点击事件没有讨论。我尝试了以下方法: $("#selectmenu").change(functi

如何在jQuery Mobile multi-select上触发单击事件

我试图添加一个关闭按钮的选择选项,因为我不觉得X关闭按钮是直截了当的。这里讨论这个话题http://stackoverflow.com/questions/10004719/jquery-mobile-multi-select-box 答案是:

您可以添加Close作为选项,然后在单击对话框Close方法时触发该方法

如何触发点击事件没有讨论。我尝试了以下方法:

$("#selectmenu").change(function() {
alert('Changed!!');});

$(document).delegate('.ui-selectmenu-screen', 'click', function () {
alert('changed');
}).delegate('.ui-selectmenu .ui-btn-inner', 'click', function (event) {
alert('changed2');});

$('#selectmenu').on('change', function () {
alert('changed');});

$('#selectmenu').live('change', function () {
alert('changed');});

$('#pageName').on('click', '.ui-selectmenu-list > li', function () {
alert('changed');});

$("#selectmenu").live( "click", function(event, ui) {
alert('changed');});

$("#selectmenu").bind( "click", function(event, ui) {
alert('changed');});

您可以使用$.selectmenu方法并绑定到更改事件,如下所示:

HTML

增加价值


我希望这有帮助

非常感谢你的帮助。出于某种原因,我需要使用.live而不是.bind,以使触发器函数正常工作。鉴于这是一个多选功能,我使用以下方法检查是否单击了“关闭”:如果$.inArray“关闭”,则选择>-1{$'selectmenu.selectmenu“关闭”;}在我离开页面后,是否仍要从我的selectmenu选项列表中删除“关闭”选项?我有一个数字的选择菜单,我将其转换为一个整数数组,并对其执行计算。当前“关闭”选项已转换为NaN。@user1299792我建议使用$.delegate而不是$.live。对于close选项,您可以执行isNan检查并将其默认为零或忽略它,而不是删除它。我添加了一个示例addvalues函数作为示例。祝你好运
<div data-role="fieldcontain">
    <select name="selectmenu" id="selectmenu" multiple="multiple">
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
        <option value="value3">Value 3</option>
        <option value="close">Close</option>
    </select>
</div>
$(document).delegate('#selectmenu', 'change', function(){
    var str = $('#selectmenu option:selected').val(); // Get Value of Option

    if (str == 'close'){
        $('#selectmenu').selectmenu('close');
    }
});
function addValues($el){
    var total = 0;
    $('option', $el).each(function(){
        var value = parseInt($(this).val());
            value = (isNaN(value-0)) ? 0 : parseInt(value); // Defaults Value to 0 if NaN

        total += value;
    });
    return total;
}