У меня есть следующая разметка для элемента привязки, затем я установил его class
с этим кодом:
function checkTechSubmissionDownload() {
if ($("#ErrorMessage").val()) {
$("#FinalizeTender .validation-summary-errors").removeClass("hidden");
$("#techSubDownloadLink").addClass("disabled");
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<a id="downloadTechSubLink" href="@Url.Action("TenderPricingTemplateDownload", new { projectId = Model.ProjectId, isClosingDateMissing = !string.IsNullOrWhiteSpace(Model.ErrorMessage) })" class="btn btn-default" onclick="checkTechSubmissionDownload(); return false;">Generate Technical Submission Spreadsheet</a>
</div>
</div>
</div>
Где $("#ErrorMessage").val()
соответствует истине, поэтому другой код выполняется. Моя проблема в том, что, хотя мой код и добавляет элемент disabled
к элементу, но он изначально выглядит так, как будто без класса. Элемент, о котором идет речь, $("#downloadTechSubLink")
выглядит как будто без класса disabled
, пока я не нажму на него или где-нибудь в его родительском div.
![enter image description here](https://i.stack.imgur.com/Tw1K7.png)
Самым верхним элементом на изображении выше является не вход, а мой якорь (в стиле disabled
), который «невидим».
Я попытался установить тайм-аут и вызвать $("#downloadTechSubLink").parent().click()
безрезультатно, только когда я вручную нажимаю на родителя или якорь, он появляется снова.
Кажется, что добавление класса к элементу не вызывает перерисовки DOM или чего-то еще. Я даже пытался вызвать redraw()
для элемента после добавления класса disabled
, но безрезультатно.