将click()分配给jquery中的子控件

我有以下html元素

 Texas Alaska California Washington Tennessee  

我有一个

。 它有50个带ID的元素,从A0,A1,A2 … A50开始如下:(

额外的行“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() }) 

然而,更好的是:

  

单处理程序现在:

 $("#selectStates").change(function(evt) { var obj = "#" + jQuery(this).attr("data-click-div"); jQuery(obj).click(); }); 

我在这里做的是为选项添加一个属性来说明要点击哪个div。 那么,一切都已完成。

使用find(“#tn”)将不起作用。 #表示id,但您正在搜索值。 您需要搜索属性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中使用。

我认为你应该制作一个带有元素A然后是状态的地图,所以AtnAtx等。

然后,您可以使用以下命令触发相应地图元素的点击:

 $("#selectStates").click(function() { $("#A" + this.value).click(); }); 

尝试使用这个jsFiddle

注意:Ninja Dude在评论中指出.select()在这种情况下不起作用,所以我在OP中使用.select() ,因为.select()仅限于字段和框。 当用户在其中进行文本选择时,select事件将发送到元素。

尝试

 $("option[value=tn]") 

因为您定位的特定选项没有id="tn"

你在找这样的东西吗?

 $(function() { $('#selectStates > *').click(function(e){ alert('you clicked : ' +this.value); }); }); 

在行动中看到它