我的页面上有一个锚标记,我想要一个附加到它的事件,当这个元素的显示发生变化时会激活.
我怎么写这个活动?并且只要这个元素的显示发生变化就会捕获?
看起来真的很简单,但无法弄清楚.我一直在元素上使用onchange事件,它运行良好.一旦用户浏览并选择了一个文件,我就会获得路径并使用我的自定义js函数上传它.
问题是,如果用户连续两次选择相同的文件,这不起作用,onchange不会触发(这是有道理的,因为没有任何改变)但在我的情况下,对我来说捕获该事件也很重要,得到路径和上传.
(类似于使用jQuery清除<input type ='file'/>,不确定我是否应该将其解析为重复)
我有一个使用动态标签的UI,因此可以将内容加载到选项卡中,然后可以关闭标签并从页面中删除内容.
当我将内容加载到选项卡时,我使用jQuery将大量事件附加到元素.
当我从页面中删除这些元素时会发生什么?jQuery需要知道吗?
另外,如果我多次附加一个事件,这有关系吗?例如,在我的标签加载中,我可能使用类选择器附加事件$('.submitButton').click(...).但是我可能已经打开了其他选项卡,这些选项卡已经附加了submitButton事件.在这种情况下,我将重新附加相同的事件.这有什么问题吗?
在Javascript中使用鼠标我偶尔会遇到以下事件属性:
我想知道他们的跨浏览器兼容性一般是什么样的,因为我只找到了我想要一起修补的信息片段.
多谢你们
说,我想在每次获得ajax响应时递增计数器.我不知道使用JavaScript异步事件的并发模型.有什么想法吗 ?
OS X Lion及以上版本允许用户打开/关闭iOS风格的浮动滚动条 - 可以通过"系统偏好设置"手动打开,也可以通过插入鼠标来打开/关闭.
基于WebKit的浏览器(也许是Opera?)会立即切换它们的滚动条样式 - 当发生这种情况时是否会触发事件?(WebKit-only很好)
NSPreferredScrollerStyleDidChangeNotification当用户切换滚动条样式时,OS X将触发
WebKit似乎没有订阅此事件(在grepping时没有命中).
我怀疑WebKit是通过NSViewBoundsDidChangeNotification事件来处理这个事件(我假设,它会触发滚动视图的内容视图).
WebKit的处理这个事件中-[WebHTMLView _frameOrBoundsChanged],这似乎是一个潜在的重新布点点.
在这个案例中也提到了这个通知WebPDFView和检查员WebNodeHighlight- 这两者似乎都没有关系.
-[WebDynamicScrollBarsView adjustForScrollOriginChange] 似乎表明事件可能不会被解雇(如果是这样,看到一些确认会很高兴)
轮询更改对我来说不是一个可接受的答案(性能和用户更改值后的布局跳转).
当我在链接上使用event.preventDefault()时,它可以工作,但是当我在按钮上使用它时却没有!
演示
我的代码:
<a id="link" href="http://www.google.com">link</a>
<button id="button" onclick="alert('an alert')">button</button>?
$('#link').click(function(event){
event.preventDefault();
});
$('#button').click(function(event){
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
链接操作被取消,但是当我单击按钮时,仍然执行onClick操作
任何帮助?我想要做的是在不更改按钮html的情况下阻止按钮onClick动作(我知道该怎么做
$('#button').removeAttr('onclick');
我的目标是创建一个插件,可以在页面区域上进行缩放和平移操作,就像Google Maps当前的工作方式一样(意思是:滚动鼠标=放大/缩小区域,点击并按住&移动和释放=平移).
滚动时,我希望以鼠标光标为中心进行缩放操作.
为此,我使用即时CSS3矩阵转换.唯一但强制性的约束是我不能使用除CSS3平移和缩放变换以外的任何东西,变换原点为0px 0px.
平移不在我的问题范围内,因为我已经开始工作了.当谈到缩放时,我正在努力弄清楚我的javascript代码中的毛刺在哪里.
问题必须在MouseZoom.prototype.zoom函数中的某处,在x轴和y轴上的平移计算中.
首先,这是我的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width = device-width, initial-scale = 1.0, user-scalable = no" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="jquery.mousewheel.min.js"></script>
<script src="StackOverflow.js"></script>
<style type="text/css" media="all">
#drawing {
position: absolute;
top: 0px;
left: 0px;
right:0;
bottom:0;
z-index: 0;
background: url(http://catmacros.files.wordpress.com/2009/09/cats_banzai.jpg) no-repeat;
background-position: 50% 50%;
}
</style>
<title>Test</title>
</head>
<body>
<div id="drawing"></div>
<script>
var renderer = new ZoomPanRenderer("drawing");
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我正在使用Jquery和Brandon Aaron的jquery鼠标滚轮插件,可以在这里找到:https: //github.com/brandonaaron/jquery-mousewheel/
这是StackOverflow.js文件的内容: …
转到Twitter的登录页面,在控制台中键入以下内容:
window.addEventListener('keypress', function(e){console.log('hello')}, true)
(注意:第三个参数如何设置为true启用事件捕获.这会导致事件在被子元素占用之前首先被窗口截获.)
尝试按某些键.请注意如何hello不输出到控制台.添加事件侦听器keydown或keyup不更改任何内容.
hello 将获得大多数网站的输出,但不会在Twitter或Gmail等网站上输出.
为什么?是什么阻止了事件监听者?
编辑:似乎在Firefox上按预期工作.但不是Chrome.为什么Chrome不按预期触发事件监听器?
编辑2:正如以下几个人推断的那样,console.log对于Twitter和Gmail这样的网站,Chrome上的功能是空的.这是为什么?
我有一个有趣的问题关于事件捕获,冒泡和jQuery.on().
我最近了解了更多关于事件捕获和事件冒泡之间的区别以及两者如何在DOM中的子父元素之间进行不同的流动.
因此,要添加具有"事件捕获方向"的事件侦听器,我将使用:
element.addEventListener("click", myFunction, true);
并添加一个事件监听器与"事件泡沫方向"我会使用:
element.addEventListener("click", myFunction, false);
这一切都很好,但我想知道的是当使用jquery.on()添加事件监听器时,如何在捕获和冒泡方面指定事件方向?
目前我使用的是:
$('parent selector').on('click', 'child selector', function(){alert('just alert something already...');});
如何告诉jQuery它需要在"事件捕获方向"或"事件冒泡方向"中添加这些事件监听器?
javascript jquery javascript-events event-bubbling event-capturing
javascript ×8
jquery ×4
dom ×2
html ×2
concurrency ×1
css3 ×1
dynamic-html ×1
events ×1
file ×1
file-upload ×1
macos ×1
mouse ×1
osx-lion ×1
webkit ×1
zoom ×1