gpt4 book ai didi

javascript - 必须单击元素两次 Jquery 事件才能工作

转载 作者:行者123 更新时间:2023-11-28 14:20:22 25 4
gpt4 key购买 nike

我有一个ajax函数,我必须单击两次才能工作。我希望它只需单击一下即可工作。在我添加一个单击事件来检查我单击的文本并将其用作 URL 的一部分之前,它就可以工作了。我的问题可能就在那里。我需要对可能出现的问题有一个新的视角。

Jquery:

function ajaxShow(){    
$('#formats a').click(function(e) {
var txt = $(e.target).text();
console.log(txt);

$.ajax({
url : "./enablereports/" + txt + ".html",
data: "html",
contentType:"application/x-javascript; charset:ISO-8859-1",
beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
},
success : function (data) {
$("#rightDiv").html(data);
}
});
});

}

HTML:

   <body>
<div id="wrapper">
<div id="enablestuff" class="yellowblock">
<h3 id="title" class="header">Enable Formats</h3>
</div>
<div id="formats" class="lightorangeblock">
<a href="" onclick="ajaxShow();event.preventDefault()">ADDSTAMP</a><br>
<a href="" onclick="ajaxShow();event.preventDefault()">SCLGLDNB</a><br>
<a href="" onclick="ajaxShow();event.preventDefault()">SCLGLVNB</a><br>

</div>

</div>

<div id="rightWrap">
<div id="rightDiv">
</div>
</div>

</body>

最佳答案

这是因为您将 jQuery 处理程序绑定(bind)在 onclick 函数内部 - 只需删除整个 onclick 属性并将处理程序绑定(bind)到函数外部即可。

$('#formats a').click(function(e) {
e.preventDefault();

var txt = $(e.target).text();
console.log(txt);

$.ajax({
url : "./enablereports/" + txt + ".html",
data: "html",
contentType:"application/x-javascript; charset:ISO-8859-1",
beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
},
success : function (data) {
$("#rightDiv").html(data);
}
});
});

和 HTML

<div id="formats" class="lightorangeblock">
<a href="">ADDSTAMP</a><br>
<a href="">SCLGLDNB</a><br>
<a href="">SCLGLVNB</a><br>
</div>

关于javascript - 必须单击元素两次 Jquery 事件才能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com