我有以下html元素
Texas Alaska California Washington Tennessee
我有一个
额外的行“href =”#“coords =”51,15,52,15,52,16,53,16,。 。 “/>
我已经在js文件中有click事件,当我点击它时突出显示状态。
现在,我想在列表框中单击该状态时突出显示该地图中的特定状态区域。
正确的尝试通过将该状态的click事件分配给特定的in来执行如下操作
$('#selectStates').find('#tn').click(function(e){ $('#A51').click(); });
但这似乎不起作用。 谁能帮帮我吗?
你可以做:
$("#selectStates").find("[value=tn]").select(function() { $("#A51").click() })
然而,更好的是:
TN
单处理程序现在:
$("#selectStates").change(function(evt) { var obj = "#" + jQuery(this).attr("data-click-div"); jQuery(obj).click(); });
我在这里做的是为选项添加一个属性来说明要点击哪个div。 那么,一切都已完成。
使用find(“#tn”)将不起作用。 #表示id,但您正在搜索值。 您需要搜索属性value 。
#
value
将单击分配给select和check is value。
例:
$("#selectStates").click (function() { switch (this.value) { case "tx": //do something break; case "ak": //do something break; case "ca": //do something break; case "ws": //do something break; case "tn": //do something break; } })
您必须检查select元素的值,而不是option元素。 您还应该将click处理程序放在select元素上。 如果您不这样做,代码将无法在IE中使用。
select
option
我认为你应该制作一个带有元素A然后是状态的地图,所以Atn , Atx等。
Atn
Atx
然后,您可以使用以下命令触发相应地图元素的点击:
$("#selectStates").click(function() { $("#A" + this.value).click(); });
注意:Ninja Dude在评论中指出.select()在这种情况下不起作用,所以我在OP中使用.select() ,因为.select()仅限于字段和框。 当用户在其中进行文本选择时,select事件将发送到元素。
.select()
尝试
$("option[value=tn]")
因为您定位的特定选项没有id="tn"
id="tn"
你在找这样的东西吗?
$(function() { $('#selectStates > *').click(function(e){ alert('you clicked : ' +this.value); }); });