Я хотел бы показать только "#HideLgf", когда "#LGF_info" щелкнул/проверил в противном случае скрыть его, как это возможно?
$(document).ready(function(){
$('#LGF_info').click(function() {
$('#HideLgf').show(100);
});
$('#DDP_info').click(function () {
$('#HideLgf').hide();
});
$('#EXW_info').click(function () {
$('#HideLgf').hide();
});
$('#DDU_info').click(function () {
$('#HideLgf').hide();
});
});
Легко. Но я должен признать, что я, вероятно, изменил бы намного больше (например, используйте класс вместо show()/hide()
, меньше идентификаторов, правильную функцию и т.д.), Но как все, что вы нам предоставили. А с помощью делегирования событий с помощью on
удаляет часто требуется domReady
вызова и позволяет повторно использовать обратные вызовы, например, на динамически добавленный контенте.
$(document)
.on("click", "#DDP_info, #EXW_info, #DDU_info", function(e) {
$("#HideLgf").hide();
})
.on("click", "#LGF_info", function(e) {
$("#HideLgf").show(100);
})
;
Попробуйте использовать multiple selector
здесь, чтобы упростить код,
$('#LGF_info,#DDP_info,#EXW_info,#DDU_info').click(function () {
var cache = $('#HideLgf');
if(this.id == "HideLgf") {
cache.stop().show(100);
}
else {
cache.hide();
}
});
e.preventDefault();
объяснитьe.preventDefault();
цельe.preventDefault()
отменяет текущее событие, но не останавливает распространение. См. JQuery API или MDN . Поскольку я не знаю используемых элементов, и это в принципе никогда не повредит.