すべてのテキストを非表示にしてボタンのクリックにオーバーレイを表示しようとしていますが、その間にテキストを追加してオーバーレイを削除することができます。スクリプトを破ることなくボタンを非表示にすることはできません
h1とp要素で何らかの理由で機能しますが、ボタン要素を追加すると破損します。
これは動作します:
<div class="row">
<div class="col-12">
<h1 class="contact-title">Portland Based</h1>
</div>
<div class="col-12 text-center">
<button type="button" href="#" class="btn btn-outline-warning letsTalk hidden-xs-down" id="contact">Let's talk</button>
<p>this works too</p>
<button type="button" href="#" class="btn btn-warning letsTalk hidden-sm-up">Let's talk</button>
</div>
</div>
#overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
z-index: 10000;
display: block;
}
$("#contact").on('click', function (e) {
if (!$('#overlay').length) {
$('body').append('<div id="overlay"> </div>');
$('h1').hide();
$('p').hide();
}
}).keyup(function (e) {
if (e.which == 27) {
$('#overlay').remove();
$('h1').show();
$('p').show();
}
}).blur(function (e) {
$('#overlay').remove();
$('h1').show();
$('p').show();
});
$('body').click(function (e) {
if (!$(e.target).is('#contact')) {
$('#overlay').remove();
$('h1').show();
$('p').show();
}
})
これにはない:
$("#contact").on('click', function (e) {
if (!$('#overlay').length) {
$('body').append('<div id="overlay"> </div>');
$('h1').hide();
$('p').hide();
$('button').hide();
}
}).keyup(function (e) {
if (e.which == 27) {
$('#overlay').remove();
$('h1').show();
$('p').show();
$('button').show();
}
}).blur(function (e) {
$('#overlay').remove();
$('h1').show();
$('p').show();
$('button').show();
});
$('body').click(function (e) {
if (!$(e.target).is('#contact')) {
$('#overlay').remove();
$('h1').show();
$('p').show();
$('button').show();
}
})
すべてのヘルプは素晴らしいことです!これはあなたに参考になるCodepen here
あなたは – Temple
@Templeありがとう本当のMVP ... –
あなたは '$( 'H1、P、ブトン')使用してそれを最適化することができますショー();' –