Проблема состоит в том, что каждый из якорных элементов имеет встроенный обработчик событий, который указывает на ajaxShow
, который затем устанавливает фактический обработчик событий для будущих щелчков.
Вместо этого исключите встроенные обработчики и простоустановить фактический обработчик без оболочки ajaxShow
.
Я бы также предложил, чтобы вы не использовали элементы <a>
, так как на самом деле вы нигде не перемещаетесь, поэтому использование элемента семантически некорректнои создаст проблемы для людей, которые полагаются на вспомогательные технологии для использования Интернета.Вместо этого, поскольку вы хотите разрывать строки между каждой «ссылкой», используйте элементы <div>
и просто стилизуйте их так, чтобы они выглядели как ссылки.
Наконец, вы использовали атрибут name
в одном из ваших последнихdiv
элементов, но name
допустимо только для полей формы.Вы можете дать ему id
, если необходимо.
$('#formats div').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);
}
});
});
#formats div { text-decoration:underline; color:blue; cursor:pointer; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="wrapper">
<div id="enablestuff" class="yellowblock">
<h3 id="title" class="header">Enable Formats</h3>
</div>
<div id="formats" class="lightorangeblock">
<div>ADDSTAMP</div>
<div>SCLGLDNB</div>
<div>SCLGLVNB</div>
</div>
</div>
<div id="rightWrap">
<div id="rightDiv"></div>
</div>