标签: javascript-events

45
推荐指数
5
解决办法
10万
查看次数

如何在node.js中处理POST请求

我正在尝试处理发送到我的node.js服务器的post请求.名为server.js的JavaScript文件在浏览器上显示一个表单.我希望在将表单值发布到node.js后端后访问它们.

表单包含用户名,存储库和分支.提交表单时,我想将此数据显示回用户.

server.js代码:

var http = require('http');

http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.end('<html><body>'
    + '<h1>XYZ Repository Commit Monitor</h1>'
    + '<form method="post" action="." enctype="application/x-www-form-urlencoded"><fieldset>'
    + '<div><label for="UserName">User Name:</label><input type="text" id="UserName" name="UserName" /></div>'
    + '<div><label for="Repository">Repository:</label><input type="text" id="Repository" name="Repository" /></div>'
    + '<div><label for="Branch">Branch:</label><input type="text" id="Branch" name="Branch" value="master" /></div>'
    + '<div><input id="ListCommits" type="submit" value="List Commits" /></div>'
    + '</fieldset></form>'
    + '</body></html>');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');
Run Code Online (Sandbox Code Playgroud)

javascript html5 javascript-events node.js

45
推荐指数
1
解决办法
6万
查看次数

jQuery多事件处理程序 - 如何取消?

我有两个函数绑定到两个不同时间的单击事件(使用jQuery).他们被解雇的顺序很重要.他们按照正确的顺序开火.问题是,当第一个函数返回false时,第二个函数仍在触发!

我该如何正确取消活动?

示例代码:

$(document).click(function() { 
  alert('a');
  return false;
});

$(document).click(function() {
  alert('b');
});
Run Code Online (Sandbox Code Playgroud)

单击页面时,您仍会看到"b"警告消息.这是无法接受的!

jquery event-handling javascript-events

44
推荐指数
1
解决办法
4万
查看次数

为什么我不能可靠地捕获mouseout事件?

我需要知道鼠标光标何时离开div.所以我联系了这个mouseout活动.但是,如果我将鼠标快速移出div,则mouseout事件不会触发.这是正确的:鼠标光标是坐以待毙里面div,它现在是外面的div,然而在mouseout回调没有被调用.(如果我不快速移动鼠标,它可以正常工作.)

在最新的谷歌浏览器中也是如此- 所以不仅仅是"旧浏览器"问题.

解决方法:

之前提出过关于这个问题的问题.显然这只是生活中的事实,我发现的唯一解决方法是手动监控mousemove事件,每次检查光标的x/y坐标并查看它们是否属于div边界框,这样你就有更多的机会如果光标不在其中,则"注意".

与让浏览器本地完成所有这些操作相比,对每个像素移动执行计算有点受到性能影响.编码也很繁琐.

关于我的问题......

为什么浏览器无法可靠地捕获mouseout事件?如果我可以可靠地判断鼠标何时离开div使用上述解决方法,为什么浏览器不能这样做呢?

我理解(从上面链接的答案)JavaScript不会尝试插入"框架".假如你在mousemove处理器上放置一个处理程序document,并在完美的水平线上快速将鼠标向右移动200个像素,则可能无法获得200个mousemove事件.一些将被遗漏.我没有问题.

但是如果在鼠标越过边界时错过了一些像素移动div,为什么mouseout还要跳过该事件呢?当浏览器最终再次开始注册鼠标的位置时(在突然快速移动之后),即使鼠标现在在盒子外面数英里,关键是它曾经在盒子中而不再是.那么为什么它不会发射mouseout事件呢?

我只是不明白为什么这对浏览器供应商来说是个难题.(但我相信可能有一个很好的理由,我觉得这太愚蠢了.)

我发布这个问题主要是出于好奇,但我希望答案可以提供一些有助于我更有效地解决问题的见解.此外,任何替代解决方案(比上面提到的更快)都是受欢迎的.

javascript javascript-events

44
推荐指数
2
解决办法
1万
查看次数

如何确定Javascript对象是否是一个事件?

确定Javascript对象是否为事件的最安全方法是什么?

javascript javascript-events

43
推荐指数
3
解决办法
3万
查看次数

如何才允许shift + enter返回文本区域中的新行?

在默认行为中,textarea"按"输入将成为新行,但我不想要换行,我希望用户按"shift + enter",而不是.我怎么能这样做?或者......我可以在实际触发文本区域之前返回textarea输入事件吗?谢谢.

jquery textarea javascript-events

43
推荐指数
1
解决办法
2万
查看次数

如何跟踪或调试所有可用的javascript事件

如何跟踪网页的所有javascript事件?

是否有可能跟踪所有事件,即使没有附加处理程序?

有没有任何工具,可以做到这一点?

澄清:

例如:

对于文本输入,我可以为onblur和onchange添加事件处理程序.

如果我(在浏览器中)更改文本字段的值并保留它,则执行两个事件处理程序.现在我想知道我"错过了"哪些其他事件(如果附加了事件处理程序,那些将被执行的事件).

Clarification2:

我可以获得所有可能事件的列表(在给定元素上)我可以附加事件处理程序吗?

javascript javascript-events

41
推荐指数
3
解决办法
5万
查看次数

window.onbeforeunload无法正常工作

我有一个表单,其中输入字段保存在更改.在firefox(5)中,即使窗口关闭也能正常工作,但对于Chrome和IE则没有,我需要确保即使他们在输入后尝试关闭窗口,我也会保存这些数据一个字段但是没有发生onBlur事件(即他们已经在文本框中键入了某些内容,但没有标记出来).

我已经阅读了以下有关使用window.onbeforeunload的文章 : 第1 条第2条

如果我使用以下内容:

window.onbeforeunload = function() {
    return "onbeforeunload";
}
Run Code Online (Sandbox Code Playgroud)

然后我得到一个带有"onbeforeunload"的弹出窗口.

但如果我尝试:

window.onbeforeunload = function() {
    alert("onbeforeunload");
}
Run Code Online (Sandbox Code Playgroud)

然后在任何浏览器中都没有任何反应,甚至是Firefox.

我想要实现的是:

window.onbeforeunload = function() {
    saveFormData();
}
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我可能出错的地方,我将不胜感激.

非常感谢

javascript javascript-events

41
推荐指数
3
解决办法
9万
查看次数

单击div时防止触发焦点事件

这个问题类似于我之前的问题,点击Focused DIV上的动作,但这一次的主题是,如何防止当我点击其中一个div时触发焦点事件.上次我使用tabindex =' - 1'时有一个div使其可以专注于点击,现在我有一个tabindex> 0的div列表,这样他们也可以在Tab键时获得焦点.

<div tabindex='1'>Div one</div>
<div tabindex='1'>Div two</div>
<div tabindex='1'>Div tree</div>
<div tabindex='1'>Div four</div>
Run Code Online (Sandbox Code Playgroud)

一些造型:

div {
    height: 20px;
    width: 60%;
    border: solid 1px blue;
    text-align: center;
}
div:focus {
    border: solid 2px red;
    outline: none;
}
Run Code Online (Sandbox Code Playgroud)

现在我在第二次点击div时使用一个标志(动作)来触发一个动作(警报),如果它已经聚焦,只需点击一下,例如TAB.

var action = false;
$('div')
    .click(function(e){
        e.stopImmediatePropagation();
        if(action){alert('action');}
        action = true;})
    .focus(function(){action = true;})
    .blur(function(){action = false;});
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是焦点事件被触发,这意味着stopImmediatePropagation不能按照我预期的方式工作.两个单击操作可以对焦点事件行进行注释,但是当div获得焦点在TAB上时仍然需要双击.这是一个例子:http://jsfiddle.net/3MTQK/1/

javascript jquery javascript-events

41
推荐指数
3
解决办法
7万
查看次数

获取触发jquery blur()事件的单击对象

假设我这样做:

$(target).blur(function(e){
  //do stuff
});
Run Code Online (Sandbox Code Playgroud)

有没有办法获取被点击的对象以触发模糊操作?

我尝试使用e.target,但这似乎是返回附加到模糊操作的对象而不是单击的对象.

javascript jquery events javascript-events onblur

41
推荐指数
3
解决办法
4万
查看次数