0

在开始之前,让我说我的背景主要是图形设计,因此我的编码知识......有限!所以要温柔:D

这是我的情况:我正在使用google maps api \ fusion tables \ jquery mobile为android构建一个phonegap应用程序。我有一个复选框列表,可以触发融合表中的各种类型的标记,我已经通过 jquery 传递了复选框的状态。这是从融合表中过滤元素的函数:

function toggleMarkers(layer2) { 
    var fusione = TABLE ID ;
    var arr_numero = [];
    var idx = 0;
    if (document.getElementById('toggleID').checked)   { 
        arr_numero[idx] = 1;
        idx++;
    }                                    
    lista_numero = arr_numero.join(',');
    if (lista_numero == "") {
        lista_numero = "'no_selection'";
    }
    layer2.setQuery("SELECT Location FROM "+ fusione +" WHERE numero IN (" + lista_numero + ")");
}

...这是复选框:

<input type="checkbox" id="MYID" onclick="toggleMarkers(layer2);" />

..和“启用”复选框的JQ:

$(document).ready( function(){ 
  $("#toggleID").change(function() {toggleMarkers(layer2);});
});

所以,;) 这个解决方案工作得很好,但我想切换到选择和选项标签,所以它使用操作系统的本机列表 UI!

像这样的东西:

<select  size="1" id="listazza" multiple="multiple">

  <option onclick="toggleMarkers(layer2);" onselect="toggleMarkers(layer2);" value="2" id="toggleID">ID</option>  

</select>

我必须在 JQ 中使用什么样的代码来触发选项标签值?

希望这足够清楚,在此先感谢。

4

1 回答 1

1

假设我已经正确理解了您的问题,处理选择列表更改的代码应该与您的复选框示例完全相同,但进行了Id更改:

$(document).ready( function(){ 
    $("#listazza").change(function() { toggleMarkers(layer2); });
});

您还可以从 HTML 中删除丑陋的onclickonselect属性,就像您修改上面的 jQuery 行一样,这也会为您处理这些问题:

$(document).ready( function(){ 
    $("#listazza").live("change click", function() { toggleMarkers(layer2); });
})

HTML

<select id="listazza" multiple="multiple" size="1">
    <option value="2">ID</option>
</select>
于 2011-11-28T10:49:41.880 回答