我正在编写一个表单验证脚本,并希望在其onblur事件触发时验证给定字段.我还想使用事件冒泡,所以我不必将onblur事件附加到每个单独的表单字段.不幸的是,onblur事件并没有泡沫.只是想知道是否有人知道可以产生相同效果的优雅解决方案.
我有一个带有ImageView和TextView的自定义视图,并为我的自定义视图实现了onClickListener.问题是,ImageView正在使用onClick事件(我只希望用户能够点击我的控件,无论在哪里).我也可以听一下Image/TextView的onClick,但它对我来说似乎很脏.
有没有办法在Android中冒泡/路由事件?还是可能的另一个好方法?
我遇到了一个我不知道解决方案的问题.
假设我有这个HTML标记(由服务器动态生成或只是静态文件):
<ul class="myList">
<li><a href="page1.html">Page 1</a></li>
<li><a href="page2.html">Page 2</a></li>
<li><a href="page3.html">Page 3</a></li>
<li><a href="page4.html">Page 4</a></li>
<li><a href="page5.html">Page 5</a></li>
<li><a href="page6.html">Page 6</a></li>
<!-- ... -->
<li><a href="page1000.html">Page 1000</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我想将click事件处理程序绑定到<a>标记.通常,我会写出来
$('.myList').find('a').click(function() {}); /* Or something similar */
Run Code Online (Sandbox Code Playgroud)
这将对所有锚标记执行隐式迭代,以将click事件绑定到每个锚标记.但是,我被告知这是一项昂贵的操作.
我被问到是否有某种方法只能附加一个事件监听器(在ul标签上)并使用事件冒泡来确定单击了哪个锚标签.我从未遇到过这样的事情,所以我不知道答案.显然,有一个答案.有人知道如何在元素上放置单个事件监听器并让它知道单击了哪个子元素吗?(我仍然需要使用event.preventDefault()来阻止默认的单击事件.)
似乎在Mouse下检索元素的所有方法都与Visual Hit测试有关.
是否有一些我缺少的机制可以让我抓住实际UIElement代表HitTest返回的当前可视树?
我正在做的总结:
我有一个自定义工具提示类,它依赖于基于鼠标结束的UIElement做的事情.
简单地说,它挂钩到拥有Window的PreviewMouseMove事件并更新"当前项目".此当前项应表示UIElement鼠标当前位于顶部.
不幸的是,我所遇到的一切Mouse.DirectlyOver,VisualTreeHelper.HitTest(包括回调)不起作用.
任何人都可以提供有关如何在Window MouseMove事件中的WPF中完成看似简单的任务的见解吗?
我有一个包含标签和按钮的下拉列表.我希望能够在没有下拉关闭的情况下单击选项卡,但如果我单击一个按钮,它将关闭.
我使用$ event.stopPropagation()来停止关闭,但显然这会阻止关闭它的按钮.
有没有办法做到这一点?
我有一个手风琴设置如下:
$('.shortheadline').accordion({ active: false, header: '.headline', autoHeight: false, animated: 'slowslide', changestart: function(event, ui) { $('.brief').css('min-height','0') }, change: function(event, ui) { $('.brief:visible').css('min-height','80px'); $('.headline').blur(); } });
Run Code Online (Sandbox Code Playgroud)
我希望点击仅在.headline div上注册,而不是在里面的链接.该链接应该带您到文章页面.
<div class="shortheadline">
<div class="entry">
<div class="headline">
<div class="timestamp">11:34 AM</div>
<div class="title"><a href="http://beta.macobserver.com/tmo/article/jeff_gamet_shares_iphone_tips_and_tricks_on_macjury/">Jeff Gamet Shares iPhone Tips and Tricks on MacJury</a></div>
</div>
<div class="brief">
<div class="teaser_image"> <img src="/imgs/cache/imgs/teaser_images/20090708macjury_new-0x80.png" width="80" height="80" id="teas_48236" alt="macJuryJeff Gamet Shares iPhone Tips and Tricks on MacJury" /></div>
<div class="teaser"><p><em>The Mac Observer's</em> Jeff Gamet joined <em>MacJury</em> host Chuck Joiner to talk about …Run Code Online (Sandbox Code Playgroud) jQuery使用事件冒泡策略来处理事件.
它声称是跨浏览器,
但是所有浏览器都支持"事件冒泡"吗?
还有另一种策略:事件捕获,与事件冒泡相反,是否灭绝?
或者我的问题可以重新陈述为:
Javascript可以自行决定是选择"事件捕获"策略还是"事件冒泡"策略?
javascript jquery事件处理如果在事件上(例如'click')为父元素绑定了一个函数,为子DOM元素绑定了另一个处理函数,它们中的哪一个被调用?如果他们所有人都会按照哪个顺序打电话?谢谢!
在我的页面上,用户单击一个元素以进行编辑.为了方便这一点,我将类分配editable给所有这些元素.
我应该如何听取所有这些元素的点击?目前,我这样做:
$lib.addEventListener(document.body, "click", function(event) {
if($lib.hasClass(event.target, "editable") {
// do stuff
}
});
Run Code Online (Sandbox Code Playgroud)
这里$lib是一个小JS库我使用.
另一种方法是在每个元素上设置一个监听器,如下所示:
var editables = document.getElementsByClassName("editable");
for(var i = 0; i < editables.length; i++) {
$lib.addEventListener(editables[i], "click", editElement);
}
Run Code Online (Sandbox Code Playgroud)
在我看来,第一种方式必须更好的性能,因为它只是一个元素被听,但是通过将所有这些事件附加到body元素是否可能降低性能?是否有任何其他考虑因素(例如,事件处理的浏览器实现)我忽略哪些会建议以第二种方式进行?
我有以下代码:
<div style="width:200px;height:100px;border:solid 1px" onclick="alert(1)">
Title
<br />
Subtitle
<div style="float:right">
<input type="checkbox" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想在用户单击div时将用户重定向到一个url(现在是警报),但是我想在用户单击复选框时允许该用户使用功能。
是否可以允许单击复选框并更改状态,而无需alert(1)从下面的div 调用?
event-bubbling ×10
javascript ×6
jquery ×4
events ×2
accordion ×1
android ×1
angularjs ×1
dom-events ×1
html ×1
ismouseover ×1
jquery-ui ×1
mouse ×1
onblur ×1
onclick ×1
routes ×1
wpf ×1