我想知道是否event.preventDefault()和return false是一样的.
我做了一些测试,似乎
例如,如果使用旧模型添加事件处理程序
elem.onclick = function(){
return false;
};
Run Code Online (Sandbox Code Playgroud)
然后,return false防止默认操作,如event.preventDefault().
如果事件处理程序使用添加addEventListener,例如
elem.addEventListener(
'click',
function(e){
return false;
},
false
);
Run Code Online (Sandbox Code Playgroud)
然后,return false不会阻止默认操作.
所有浏览器的行为都是这样的吗?
event.preventDefault()和之间有更多的区别return false吗?
我在哪里可以找到一些文档(我不能在MDN中)关于在某些情况下的return false行为event.preventDefault()?
我的问题只是简单的javascript,而不是jQuery,所以请不要将它标记为event.preventDefault()与return false的重复,即使两个问题的标题几乎相同.
sender和eventArgs是什么意思/指的是什么?我该如何使用它们(对于下面的场景)?
场景:
我正在尝试使用删除功能构建自定义控件,并且我希望能够删除在包含许多相同自定义控件的页面上单击的控件.
拿下面的代码:
private void anEvent(object sender, EventArgs e) {
//some code
}
Run Code Online (Sandbox Code Playgroud)
以下有什么区别?
[object].[event] += anEvent;
//and
[object].[event] += new EventHandler(anEvent);
Run Code Online (Sandbox Code Playgroud)
[UPDATE]
显然,两者之间没有区别......前者只是后者的语法糖.
我想创建一个传递事件和一些参数的eventHandler.问题是函数没有得到元素.这是一个例子:
doClick = function(func){
var elem = .. // the element where it is all about
elem.onclick = function(e){
func(e, elem);
}
}
doClick(function(e, element){
// do stuff with element and the event
});
Run Code Online (Sandbox Code Playgroud)
'elem'必须在匿名函数之外定义.如何在匿名函数中获取传递的元素?有没有办法做到这一点?
那么addEventListener呢?我似乎无法通过addEventListener传递事件吗?
更新
我好像用'这个'解决了这个问题
doClick = function(func){
var that = this;
this.element.onclick = function(e){
func(e, that);
}
}
Run Code Online (Sandbox Code Playgroud)
这包含我可以在函数中访问的this.element.
addEventListener
但我想知道addEventListener:
function doClick(elem, func){
element.addEventListener('click', func(event, elem), false);
}
Run Code Online (Sandbox Code Playgroud) 我从一个不同的SO问题得到了这个代码,但节点抱怨使用process.stdin.setRawMode而不是tty,所以我改变了它.
之前:
var tty = require("tty");
process.openStdin().on("keypress", function(chunk, key) {
if(key && key.name === "c" && key.ctrl) {
console.log("bye bye");
process.exit();
}
});
tty.setRawMode(true);
Run Code Online (Sandbox Code Playgroud)
后:
process.stdin.setRawMode(true);
process.stdin.on("keypress", function(chunk, key) {
if(key && key.name === "c" && key.ctrl) {
console.log("bye bye");
process.exit();
}
});
Run Code Online (Sandbox Code Playgroud)
在任何情况下,它只是创建一个完全没有响应的节点进程,什么都不做,第一个抱怨tty,然后抛出错误,第二个什么都不做,并禁用Node的本机CTRL+ C处理程序,所以它甚至没有退出节点,当我按下.如何在Windows中成功处理Ctrl+ ?C
我将尝试用简单的代码解释问题.
var fireClick = function() { alert('Wuala!!!') };
$('#clickme').click(fireclick);
$('#clickme').click(fireclick);
Run Code Online (Sandbox Code Playgroud)
所以现在它会明显提醒2次,但我只需要提醒一次.尝试了很多方法,但没有结果.
谢谢.
在我的应用程序中,我需要处理移动和单击事件.
单击是一个ACTION_DOWN操作的序列,几个ACTION_MOVE操作和一个ACTION_UP操作.理论上,如果您获得ACTION_DOWN事件然后获得ACTION_UP事件 - 这意味着用户刚刚单击了您的视图.
但实际上,这个序列在某些设备上不起作用.在我的三星Galaxy Gio上,只需单击我的视图:ACTION_DOWN,几次ACTION_MOVE,然后ACTION_UP即可获得此类序列.即我使用ACTION_MOVE动作代码获得了一些无法预料的OnTouchEvent激活.我从未(或几乎从不)获得序列ACTION_DOWN - > ACTION_UP.
我也不能使用OnClickListener,因为它没有给出点击的位置.那么如何检测点击事件并将其与移动区分开来呢?
通过http://microjs.com浏览,我看到许多标记为"事件发射器"的库.我喜欢认为我很熟悉javascript语言的基础知识,但我真的不知道"事件发射器"是什么或者做什么.
有人关心开导我吗?听起来很有趣...
我正在使用以下代码来检测单击动态生成的按钮的时间.
$(document).on("click",".appDetails", function () {
alert("test");
});
Run Code Online (Sandbox Code Playgroud)
通常情况下,如果你刚才这样做,$('.appDetails').click()你可以$(this)用来获取被点击的元素.我将如何使用上面的代码完成此操作?
例如:
$(document).on("click",".appDetails", function () {
var clickedBtnID = ??????
alert('you clicked on button #' + clickedBtnID);
});
Run Code Online (Sandbox Code Playgroud) 我有一个LayoutXML定义,由几个Buttons 组成.
目前我在OnCreate方法中这样做,以针对按钮定义事件处理程序:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);
..... similarly for other buttons too
.....
}
Run Code Online (Sandbox Code Playgroud)
里面的Button的onClick情况下,我启动相机Intent获取的图片,里面onActivityResult的回调,我再次设置沿设定的事件处理程序View是这样的:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
setContentView(R.layout.main);
Button newPicButton = (Button)findViewById(R.id.new_button);
newPicButton.setOnClickListener(btnListener);
...similarly for other buttons too
}
Run Code Online (Sandbox Code Playgroud)
我是android新手,这种每次重新定义事件的方法对我来说都很脏.我想知道在这样的场景中定义按钮事件处理程序方面的最佳实践是什么.
编辑:粘贴我的完整课程
public class CameraAppActivity extends Activity
{
/** Called when the activity is first created. */
@Override
public …Run Code Online (Sandbox Code Playgroud) event-handling ×10
events ×4
javascript ×3
android ×2
jquery ×2
.net ×1
button ×1
c# ×1
click ×1
copy-paste ×1
delegates ×1
dom-events ×1
handler ×1
node.js ×1
touch-event ×1