【问题标题】:Jquery select tag \ checkboxes with fusion tablesJquery选择标签\带有融合表的复选框
【发布时间】:2012-01-07 20:11:42
【问题描述】:

在开始之前,让我说我的背景主要是平面设计,因此我的编码知识......有限!所以要温柔: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中我必须使用什么样的代码来触发选项标签值?

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

【问题讨论】:

  • 你是什么意思(切换到和标签,所以它使用操作系统的本机列表 UI!)?

标签: jquery android google-maps-api-3 jquery-mobile google-fusion-tables


【解决方案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>

【讨论】:

  • 这个不行,好像id没有定义,js中的if无法获取checked状态
  • 好的,现在可以了:&lt;select id="listazza" name="Markers" multiple="multiple"&gt; &lt;option id="toggleID"&gt;NAME&lt;/option&gt; &lt;/select&gt; 和你的 JQ:$("#listazza").live("change click", function() { toggleMarkers(layer2); }); and most important, I've changed the js in: if (document.getElementById('toggleID').selected) { arr_numero[idx] = 1; idx++; } 非常感谢您的帮助!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 2017-05-15
  • 2021-09-16
  • 2018-10-19
  • 2013-07-26
  • 2013-09-30
  • 2013-10-10
相关资源
最近更新 更多