Javascript 单击包含的元素也会有效地(但错误地)单击其容器
这是 考虑最左边的列标题,标题文本为“Undr”,下面是该列标题的简化html:Javascript 单击包含的元素也会有效地(但错误地)单击其容器,javascript,html,css,Javascript,Html,Css,这是 考虑最左边的列标题,标题文本为“Undr”,下面是该列标题的简化html: <th class="underlying" onclick="toggleColSelect(this);"> <img class='ad' onclick="toggleColSortOrder(this);"> Undr </th> Undr 用户可以在列标题中执行两项操作: <th class="underlying" onclick="to
<th class="underlying" onclick="toggleColSelect(this);">
<img class='ad' onclick="toggleColSortOrder(this);">
Undr
</th>
Undr
用户可以在列标题中执行两项操作:
<th class="underlying" onclick="toggleColSelect(this);">
<img class='ad' onclick="toggleColSortOrder(this);">
Undr
</th>
toggleColSortOrder()代码>确实只切换排序顺序;但是,当用户单击图像时,选择列的功能似乎也会被调用(错误)
我尝试过的:我认为这可能是工作中冒泡的表现,我尝试了两个函数中返回真、假和零的所有组合。所有这些都没有任何效果。我希望避免进一步攻击JavaScript
问题:如何通过更改html或css来阻止函数toggleColSelect()代码>当用户在向上/向下箭头图像内单击时被调用 您可以通过添加
event.cancelBubble = true;
你的职能。查看此提琴:您可以通过添加
event.cancelBubble = true;
你的职能。看到这把小提琴:这是我的理论,因为你的
标签在你的
标签里面,你不能在没有先通过
点击的情况下点击
。如果有办法取消这两个标记的嵌套,我会假设它们的函数将被单独调用。可能使用
将
对准正确的位置。我将尝试使用firebug对我刚才所说的内容进行实时调整,看看(如果它没有破坏javascript)是否有效,然后我会报告
祝你好运。这是我的理论,因为你的
标签在你的
标签里面,你不能在没有通过
先“点击”的情况下点击
。如果有办法取消这两个标记的嵌套,我会假设它们的函数将被单独调用。可能使用
将
对准正确的位置。我将尝试使用firebug对我刚才所说的内容进行实时调整,看看(如果它没有破坏javascript)是否有效,然后我会报告
祝您好运。正如Tomalak指出的那样,
的单击事件会冒泡到父级
,因此您必须在函数中另行指定。另外,为.添加对event.stopPropagation()的调用。正如Tomalak指出的那样,
的单击事件会冒泡到父级
,因此您必须在函数中另行指定。另外,为添加对event.stopPropagation()
的调用。我在使用Chrome的站点上没有发现问题。你用的是什么浏览器?哦,如果你想让专门研究javascript的人回答这个问题,请确保将该标记添加到这篇文章中,否则它会被忽略。@Wex--谢谢!我应该说什么构成了一个选定的专栏:它是一个黄色的背景。我添加了那个编辑。你会发现(除非我疯了)问题出现在Chrome 12.0.742.91中。@Wex--你说得对,我道歉。这个问题不会发生在其他专栏中。很抱歉。现在我真的很困惑:-)我一直在使用Firefox。我想你是说“其他浏览器”;)我没有看到你使用Chrome网站的问题。你用的是什么浏览器?哦,如果你想让专门研究javascript的人回答这个问题,请确保将该标记添加到这篇文章中,否则它会被忽略。@Wex--谢谢!我应该说什么构成了一个选定的专栏:它是一个黄色的背景。我添加了那个编辑。你会发现(除非我疯了)问题出现在Chrome 12.0.742.91中。@Wex--你说得对,我道歉。这个问题不会发生在其他专栏中。很抱歉。现在我真的很困惑:-)我一直在使用Firefox。我想你是说“其他浏览器”;)我确实试着用firebug来修改它,但是它破坏了javascript函数调用,因此我无法完全测试我的理论。我确实试着用firebug来修改它,但是它破坏了javascript函数调用,因此我无法完全测试我的理论。