我有一个小div标签,当我点击它(onClick事件)时,它将运行该printMousePos()功能.这是HTML标签:
<html>
<header>
<!-- By the way, this is not the actual html file, just a generic example. -->
<script src='game.js'></script>
</header>
<body>
<div id="example">
<p id="test">x: , y:</p>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是一个单独的.js文件中的printMousePos函数:
function printMousePos() {
var cursorX;
var cursorY;
document.onmousemove = function(e){
cursorX = e.pageX;
cursorY = e.pageY;
}
document.getElementById('test').innerHTML = "x: " + cursorX + ", y: " + cursorY;
}
Run Code Online (Sandbox Code Playgroud)
是的,该函数实际上有效(它知道你何时点击它和所有),但它返回x和y的未定义,所以我假设函数中的get x和y代码是不正确的.有任何想法吗?我也知道javascript本身没有任何内置函数可以像java一样返回x和y,ex ..有没有办法用JQuery或php做到这一点?(尽管可能,尽量避免那些,javascript会是最好的).谢谢!
在我的WPF项目中,我有一点复杂的控制.在项目中我只使用Controls(它们都是模板化的),除了MainWindow.
在一个屏幕上,我有以下布局(用于显示模板应用和填充内容后的布局):
MyScreenControl
-MyTableControl
--ItemsControl
--- HeaderItemsControl
----- HeaderItemsControl.Header
------ MyHeaderControl
----- HeaderItemsControl.Items
------ MyItemControl
------ MyItemControl
--- --- MyItemControl
......
当我在ScreenControl的代码文件中时,在OnMouseLeftButtonDown方法中,我想确定click事件是来自MyHeaderControl还是MyItemControl.
MouseButtonEventArgs的Source是ScreenControl,OriginalSource是MyItemControl/MyHeaderControl模板中的TextBlock.
我第一次尝试找到MyItemControl/MyHeaderControl是从OriginalSource开始,并递归地查看Parent属性的类型.它工作正常,直到我到达模板的根(在这种情况下是一个ViewBox),但根没有父元素.
我在我早期的z项目中使用了这样的方法并且它有效,但后来我使用的是UserControls,而不是Controls,也没有模板.
任何想法我应该如何处理这个问题(一个好主意是作为代码的好结果)?
thx,Tenshiko
我有两个元素 - 父母和孩子。两者都有点击事件处理程序。如果我单击子元素,则两个事件处理程序都会运行 - 先运行父元素,然后运行子元素(至少在 Chrome 上)。我不知道浏览器如何确定运行事件的顺序,但是有没有办法专门设置此顺序,以便子级的单击事件在父级的单击事件之前发生?
我发现了很多关于不同事件(mousedown、click等)的顺序的问题和答案,但找不到关于不同元素上同一事件的顺序的任何内容。
德尔福XE
有没有办法检测表单是否收到鼠标点击?表单中的OnClick事件仅在表单的空白部分触发.任何具有控件的部件都不会响应.
onmouseclick ×4
javascript ×2
delphi ×1
delphi-xe ×1
dom-events ×1
events ×1
html ×1
onclick ×1
parent ×1
templates ×1
wpf ×1
wpf-controls ×1