我正在尝试通过鼠标单击触发一个事件,用户单击一个按钮并触发一个事件,一旦用户点击输入字段,请参阅下面的代码或jsFiddle下面: -
$('.button').click(function () {
$('*').css( 'cursor', 'crosshair' );
$('input').one("click",function (event) {
alert(event.pageX, event.pageY);
});
});
我在jsfiddle
上有一个例子我遇到的问题是,一旦用户点击输入字段,该功能需要停止/完成。但是,如果用户在单击第一个输入字段后单击它,则再次运行该函数。
我试图把
return false;
在代码中停止进一步传播,但这没有用。
非常感谢任何帮助。
提前致谢。
答案 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);
}
});