Adr*_*ano 0 javascript jquery javascript-events
我有一个非常奇怪的问题.我的示例代码工作[这里] [1]安静很好,但我在我的aptana工作室编辑器中有完全相同的代码,当我在Chrome或Eclipse浏览器中尝试时,事件就不会触发.我无法想象这是什么问题,因为它完全相同的代码......
HTML
<!DOCTYPE html>
<html>
<head>
<title>OrderScreen</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/script.js" type="text/javascript"></script>
</head>
<body>
<a href="">Test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
jQuery的
$("a").mouseup(function() {
clearTimeout(pressTimer);
// Clear timeout
return false;
}).mousedown(function() {
// Set timeout
pressTimer = window.setTimeout(function() {
alert("hcbdhaf")
}, 1000);
return false;
}).click(function() {
alert("dfsdg");
});
Run Code Online (Sandbox Code Playgroud)
如果您的代码实际上是引用的,那么问题是当您尝试将事件处理程序挂钩时,这些元素不存在.jsFiddle的默认设置可以隐藏此问题.(在左侧看,你会看到你的代码在load事件触发之前不会运行- 这在页面加载过程中非常非常晚.)
要修复它,要么:
结合其中任何一个,您还可以查看使用事件委派而不是直接连接元素上的事件.您mouseup和mousedown处理程序将单独附加到每个 a元素.这是很多连接.如果有一个容器,所有这些a元素都在(body或更好,更接近),您可能会将事件挂钩到该容器上(因为这些事件会冒泡),然后检查事件是否源自a元素.jQuery支持事件委托,为你做大部分艰苦的工作,通过delegate(我喜欢,因为它是如此明确),最近,你传递的参数的六种变体之一on.
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |