gpt4 book ai didi

javascript - 带有 TH onclick 的下拉菜单触发 TH click,而不是下拉菜单

转载 作者:行者123 更新时间:2023-12-02 20:11:10 28 4
gpt4 key购买 nike

我正在尝试创建一个包含可排序行的表格 - 但其中一行也需要一个下拉列表。

问题是,当单击下拉菜单时 - 表头的单击事件正在触发,导致不应该发生的事情发生。

我发现了这个:

http://www.velocityreviews.com/forums/t367867-table-row-background-onclick.html

但我想 - 一定有一个更优雅的解决方案?

有人接受吗?

抱歉 - 我忘记了示例!

    <th onclick="SortBy(event,'ctl00$mainContent$hiddenPBButton','descending','1')" class="tableDataHeader">
<select id="groupby1"` onchange="performPostBackfromDrop(event,this,'ctl00$mainContent$hiddenPBButton');"><option value="Enquiry Type">Enquiry Type</option>
<option value="Location">Location</option>
<option value="Source">Source</option>
<option selected="" value="User">User</option>
</select>

</th>

JS

如您所见 - JS 非常通用 - 但为了清楚起见,我将其包含在内

function SortBy(e, PBID,direction, field)
{
performPostBackfromSort(PBID,direction,field);
}
function performPostBackfromSort(PBID, direction, field)
{
__doPostBack(PBID, "sort"+"-"+direction+"-"+field);
}

function performPostBackfromDrop(e,sender, PBID)
{
var value = getDropDownSelectedValue(sender);
__doPostBack(PBID, $j(sender).attr('id')+"-"+value);
}

最佳答案

将 onclick 事件添加到选择并停止传播 (FireFox) 或停止冒泡 (IE)。这是我使用的示例代码。

<html>
<head>
<title>test</title>
<script>
function divOnclick(event)
{
alert("Div onclick");
}
function selectOnclick(event)
{
stopPropagation(event);
}
function selectOnchange(event)
{
alert("Select onchange");
}
function stopPropagation(ev)
{
ev = ev||event;
ev.stopPropagation? ev.stopPropagation() : ev.cancelBubble = true;
}
</script>
</head>
<body>
<div id="test" style="width:200px;height:200px;" onclick="divOnclick(event)">
<select id="groupby1"` onclick="selectOnclick(event);" onchange="selectOnchange(event);">
<option value="Enquiry Type">Enquiry Type</option>
<option value="Location">Location</option>
<option value="Source">Source</option>
<option selected="" value="User">User</option>
</select>
</div>
</body>
</html>

关于javascript - 带有 TH onclick 的下拉菜单触发 TH click,而不是下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940283/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com