gpt4 book ai didi

Jquery 第二次 Click Fire 事件第一次丢失

转载 作者:行者123 更新时间:2023-12-01 04:26:34 24 4
gpt4 key购买 nike

首先,点击一个链接将会进行ajax调用,一旦返回成功,就会调用另一个函数...

//First Call
$(this).click(ajaxHandler);

function ajaxHandler(){
var $obj = $(this);
var urlLink = someURL;
var data = "id=" + "123";

// Unbind the ajax handler to prevent re-fire before ajax request completes
$obj.unbind("click", ajaxHandler);

$.ajax({
url: urlLink,
data: data,
cache: false,
success: function(resp){
// Bind the new event handler
$obj.bind("click", someFunction);

// Fire click on Object
$obj.click();
},
error: function(){
// Put the ajax handler back so the user can try again if it fails
$obj.bind("click", ajaxHandler);
}
});
}

在这里,在“someFunction”中,我这样调用,

someFunction: function(e){
var evt = (e) ? e : window.event;
var p = evt.target.name;
var x = evt.pageX;
var y = evt.pageY;
............
}

我第一次收到 evt.pageXevt.pageY 未定义。如果我再次单击该链接,则给出确切的位置。

我也是第一次获取 evt.target.name 的数据。这些事件对于工具提示很有用。

请帮助我第一次如何识别轴位置。提前致谢...

最佳答案

第一次是未定义的,因为单击事件是手动触发的,而不是由用户用鼠标单击触发的。要解决此问题,您可以手动调用 someFunction 而不是触发事件,并且可以传递第一个调用的事件变量。

//First Call
$(this).click(ajaxHandler);

function ajaxHandler(e){
var $obj = $(this);
var urlLink = someURL;
var data = "id=" + "123";

// Unbind the ajax handler to prevent re-fire before ajax request completes
$obj.unbind("click", ajaxHandler);

$.ajax({
url: urlLink,
data: data,
cache: false,
success: function(resp){
// Bind the new event handler
$obj.bind("click", someFunction);

// call function in the context of $obj and pass through event variable
someFunction.apply($obj[0],[e]);
},
error: function(){
// Put the ajax handler back so the user can try again if it fails
$obj.bind("click", ajaxHandler);
}
});
}

someFunction 中,您不必对事件变量做任何花哨的事情,jQuery 会为您标准化它:

someFunction: function(evt){
var p = evt.target.name;
var x = evt.pageX;
var y = evt.pageY;
............
}

关于Jquery 第二次 Click Fire 事件第一次丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6060376/

24 4 0
文章推荐: python - 如何解决这个 bash python 交互?
文章推荐: Jquery:根据
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com