jQuery .click()正在点击,但不应该

时间:2015-07-29 06:56:45

标签: javascript jquery html css testing

在测试我的JavaScript时遇到以下问题:

$('#idOfMyElement').click();

已执行。但我想用我的测试来验证,那就是执行,因为它有以下CSS:

<span style="cursor: not-allowed; pointer-events: none;" id="idOfMyElement"></span>

我调试了它,并且可以肯定的是,当执行.click()时,它确实具有所提到的CSS属性。在我的正常程序中它起作用(意味着点击不起作用),但在我的测试中,点击有效,即使它不应该。

我没有clou,可能是什么问题。 谢谢你的帮助!

3 个答案:

答案 0 :(得分:7)

在您的测试中,您似乎是使用$('#idOfMyElement').click();以编程方式触发事件;在这种情况下,它不受CSS鼠标规则的约束,因此点击处理程序将被执行。

在触发测试套件中的点击事件之前,您需要检查鼠标指针规则

答案 1 :(得分:1)

指针事件仅对真实指针事件做出正确响应。如果触发click()函数,它会一直触发它。如果指针事件处于活动状态,则添加一个条件读取,或者用禁用的属性替换它

答案 2 :(得分:1)

使用jQuery防止默认点击事件:

$('#idOfMyElement').on('click', function(e) {
  e.preventDefault(); });

*更新*

现在我知道你正在尝试做什么,我强烈推荐在CSS上使用javascript,因为CSS不会像你尝试使用它那样工作 - Javascript确实如此。而不是使用CSS属性,使用Javascript变量。

如果您希望元素可点击,

$('#idOfMyElement').prop('disabled', false);

当它应该不可点击时,

$('#idOfMyElement').prop('disabled', true);

浏览器在不需要CSS的情况下处理游标,点击事件应该做出适当的反应。希望这很有用!