尝试触发(触发)单击事件.它很容易在jQuery中做,但无法弄清楚如何设置事件的坐标并发送它们.
基本上,我需要在特定位置触发一次点击(在trigger()调用之前计算).
任何方式(在jQuery或其他方面)?
谢谢 -
我想做的事:
( clickedObject === someDiv ) //returns true or false
Run Code Online (Sandbox Code Playgroud)
我尝试了什么
( $(e.target) === $('.selector') ); //returns a false negative.
Run Code Online (Sandbox Code Playgroud)
我的解决方法
( $(e.target).attr('class') === $('.selector').attr('class') ); //works as intended, not so clean though.
Run Code Online (Sandbox Code Playgroud)
将我点击的对象与DOM中的对象进行比较的正确方法是什么?
如何使用jQuery清除按钮单击事件的下拉列表值?
我有以下HTML:
<button name="btnG" class="gbqfb" aria-label="Google Search" id="gbqfb"><span class="gbqfi"></span></button>
Run Code Online (Sandbox Code Playgroud)
我在下面的单击"Google搜索"按钮的代码在WebDriver中使用Java工作得很好.
driver.findElement(By.id("gbqfb")).click();
Run Code Online (Sandbox Code Playgroud)
我想在WebDriver中使用JavaScript来单击按钮.我该怎么做?
如何检测用户何时点击红色气泡?
它不应该像一个方形场.鼠标必须在圆圈内:
这是代码:
<canvas id="canvas" width="1000" height="500"></canvas>
<script>
var canvas = document.getElementById("canvas")
var ctx = canvas.getContext("2d")
var w = canvas.width
var h = canvas.height
var bubble = {
x: w / 2,
y: h / 2,
r: 30,
}
window.onmousedown = function(e) {
x = e.pageX - canvas.getBoundingClientRect().left
y = e.pageY - canvas.getBoundingClientRect().top
if (MOUSE IS INSIDE BUBBLE) {
alert("HELLO!")
}
}
ctx.beginPath()
ctx.fillStyle = "red"
ctx.arc(bubble.x, bubble.y, bubble.r, 0, Math.PI*2, false)
ctx.fill()
ctx.closePath()
</script>
Run Code Online (Sandbox Code Playgroud) 我遇到了一个有趣的错误(?),如果您使用<use>作为链接的一部分(例如图标)嵌入SVG - 图标本身不会在jQuery中注册click事件,但单击文本会.我认为这是由于SVG事件没有冒泡?
如果直接嵌入SVG,无论是否单击文本或图标,链接都会触发.
我在这里可以看到一个简单的测试用例: SVG <use> bug测试用例.
我希望在ListBox中的某个项被鼠标单击时得到通知,无论它是否已被选中.
我搜索并发现了这个:(http://kevin-berridge.blogspot.com/2008/06/wpf-listboxitem-double-click.html查看评论)
private void AddDoubleClickEventStyle(ListBox listBox, MouseButtonEventHandler mouseButtonEventHandler)
{
if (listBox.ItemContainerStyle == null)
listBox.ItemContainerStyle = new Style(typeof(ListBoxItem));
listBox.ItemContainerStyle.Setters.Add(new EventSetter()
{
Event = MouseDoubleClickEvent,
Handler = mouseButtonEventHandler
});
}
//Usage:
AddDoubleClickEventStyle(listView1, new MouseButtonEventHandler(listView1_MouseDoubleClick));
Run Code Online (Sandbox Code Playgroud)
这是有效的,但它是为了它DoubleClick.虽然我不能让它工作一次.我试过MouseLeftButtonDownEvent- 因为似乎没有MouseClick事件,但它没有被调用.
一个更普遍的侧面问题:我怎样才能看到哪些事件确实存在,哪些处理程序与它们对应以及何时实际执行某些操作?例如,什么告诉我,MouseDoubleClickEvent我需要一个MouseButtonEventHandler?也许对于MouseLeftButtonDownEvent我需要一些其他处理程序,这就是为什么它不起作用?
我也尝试了子类化ListBoxItem和覆盖OnMouseLeftButtonDown- 但它也没有被调用.
渣
情况:
<div class="header">
<div style="float: left;" class="headerTitle">+ OPEN</div>
<div class="closeBtn" style="float: right;">- CLOSE</div>
</div>
<div class="touristenContent">.....</div>
Run Code Online (Sandbox Code Playgroud)
视觉:
|+Open..............................|-Close|..| (header) |............Content..........................|
标题DIV是一个带有jQuery click()事件的"大按钮",用于打开内容.关闭的DIV位于大标题DIV内部,并表示关闭按钮,还有click()事件来关闭内容.只有单击大标题才能看到此关闭按钮.
标题上的Clickng和oppening内容按预期工作,但单击关闭按钮让click事件通过标题DIV.由于两次点击事件,内容将关闭并再次打开.
那么我怎么能正确地设计整个东西以使关闭按钮稳固并防止点击它到标题?
我有一段JavaScript,它A在现有div 中动态创建一个标签,然后在其上调用jQuery函数"click".这适用于除Safari之外的所有浏览器.
Safari返回以下错误:
'undefined'不是函数(评估'$('.shell a')[0] .click()')
关于我做错了什么或者为什么这在Safari中不起作用以及如何使其工作(或者在所有浏览器中都能运行的一段代码)的任何想法我都试过使用.trigger("click")它也会出现同样的错误.
function writeAndClickLink(url) {
$('.shell').html('<a href="' + url + '"></a>');
$('.shell a')[0].click();
}
Run Code Online (Sandbox Code Playgroud)
在HTML中:
<div class="shell"></div>
Run Code Online (Sandbox Code Playgroud)
我这样做的原因很简单,就是从Flash网站调用这个函数来打开一个推特窗口,我在那里给予推文奖励.到目前为止,这是我可以将"tweet"事件绑定到窗口的唯一方法.如果我以任何其他方式打开窗口(例如window.open),它不捕获绑定事件,让我知道他们实际完成了推文.
流程如下:
好吧我觉得我疯了
我正在看iOs 6.0上的Mobile Safari.我似乎无法确定任何押韵或理由,因为点击元素会触发点击.在许多情况下,似乎我需要点击一次以触发悬停,然后再次触发点击.
的移动Safari规范说:" ...由一个手指和两手指手势生成的事件的流动是有条件的根据所选的元素是否是可点击或滚动...一个可点击的元件是一个链接,表格元件,图像映射区域或使用mousemove,mousedown,mouseup或onclick处理程序的任何其他元素......由于这些差异,您可能需要将某些元素更改为可单击元素......"
它继续建议开发人员"...添加一个虚拟onclick处理程序,onclick ="void(0)",以便iOS上的Safari将span元素识别为可点击元素."
但是,我的测试表明这些陈述是错误的.
JsFiddle:http://jsfiddle.net/6Ymcy/1/
HTML
<div id="plain-div" onclick="void(0)">Plain Div</div>
Run Code Online (Sandbox Code Playgroud)
JS
document.getElementById('plain-div').addEventListener('click', function() {
alert('click');
});
Run Code Online (Sandbox Code Playgroud)
尝试在iPad上点击元素. 什么都没发生
但我离题了.对我来说重要的是找出以下问题:
确切地说,点击元素时确定的标准是什么?会在第一次点击时触发"点击"事件? 而不是在第一次点击时触发"悬停"事件,在第二次点击时触发"点击"事件.
在我的测试中,锚元素是我可以在第一次点击时触发点击的唯一元素,然后,仅偶尔和不一致.
这是我开始感到疯狂的地方.我在网上广泛搜索,发现这个问题几乎没有.只有我吗?!有没有人知道哪里有关于双击标准和/或处理这些限制的方法的讨论?
我很乐意回答问题/要求.
谢谢!