我有一个类似<select>
的下拉菜单,它与外部的js-function相对应
HTML:
<ul class="select" id="select">
<li>
<a href="javascript:void(0);" class="selectlink" id="price_type">UAH</a>
<ul>
<li onclick="onchange('elm0', 0);" >
<a href="javascript:void(0);" id="elm0">UAH</a></li>
<li onclick="onchange('elm1', 1);" >
<a href="javascript:void(0);" id="elm1">USD</a></li>
<li onclick="onchange('elm2', 2);" >
<a href="javascript:void(0);" id="elm2">EUR</a></li>
<li onclick="onchange('elm3', 3);" style="border-bottom:1px solid #54616E">
<a href="javascript:void(0);" id="elm3">...</a></li>
</ul>
</li>
</ul>
和onchange
- 使用jQuery的函数:
function onchange(id, index) {
$("#price_type").html($("#"+id).html());
updateData(index);
}
其中updateData(index)
根据参数index
执行AHAH请求以更改内容。但我想使用jQuery更改这个旧源,因此没有onclick="onchange('elm...', ...);"
。因为我2天前开始学习jQuery,所以我需要一些关于它如何正确的帮助:
$(function() {
$("ul#select li ul li").click(function() {
var id = $("[id^=elm]").attr("id").match(/\((\d+)\)/)[1];
$("#price_type").html($("#elm"+id).html());
updateData(id);
});
});
我做错了...谢谢你的回答!
答案 0 :(得分:2)
我实际上会将click()
附加到锚点而不是列表项目。
$("ul#select li ul li a").click(function() {
$("#price_type").html($(this).html());
var id = $(this).attr("id")).match(/\((\d+)\)/)[1];
updateData(id);
return false; // Now you can also remove the javascript:void(0) from your anchors onClick
});