停止第二次触发功能事件

时间:2017-07-24 13:59:34

标签: javascript jquery html

我正在尝试通过鼠标单击触发一个事件,用户单击一个按钮并触发一个事件,一旦用户点击输入字段,请参阅下面的代码或jsFiddle下面: -

$('.button').click(function () {
    $('*').css( 'cursor', 'crosshair' );
    $('input').one("click",function (event) {
        alert(event.pageX, event.pageY);
    });
});

我在jsfiddle

上有一个例子

我遇到的问题是,一旦用户点击输入字段,该功能需要停止/完成。但是,如果用户在单击第一个输入字段后单击它,则再次运行该函数。

我试图把

return false;

在代码中停止进一步传播,但这没有用。

非常感谢任何帮助。

提前致谢。

3 个答案:

答案 0 :(得分:3)

在输入字段上单击一次后,可以使用.off()删除eventlistener。像这样的东西:

$('.button').click(function () {
    $('*').css( 'cursor', 'crosshair' );
    $('input').one("click",function (event) {
        alert(event.pageX, event.pageY);
        $('input').off('click');
    });
});

答案 1 :(得分:0)

你可以使用这样的事件:

List<UtilisationsCriteres>

这将停止与事件处理程序链接的所有事件传播。可以在此处找到更多信息:http://api.jquery.com/event.stopPropagation/

答案 2 :(得分:0)

尝试:

var buttonClicked = false;
$('.button').click(function () {
    $('*').css( 'cursor', 'crosshair' );
    buttonClicked = true;
});
$('input').one("click",function (event) {
    if (buttonClicked)
    {
       buttonClicked = false;
       alert(event.pageX, event.pageY);
    }
});