多くの議論があるようですが、簡単な答えは見つけられません。私はDOMにローダーアイコンを追加した後に機能が実行されるようにしたいが、appendはこれをサポートしていないことを理解する。簡単な解決法はありますか?追加後に機能を実行する
現在コード:
多くの議論があるようですが、簡単な答えは見つけられません。私はDOMにローダーアイコンを追加した後に機能が実行されるようにしたいが、appendはこれをサポートしていないことを理解する。簡単な解決法はありますか?追加後に機能を実行する
現在コード:
$('#tab').on('shown.bs.tab', function(e) {
$("#htmlelement").append('<i class="fa fa-spinner fa-spin fa-fw"></i>');
functionafterappend();
});
.append
は、同期関数です。したがって、この解決策は有効で、functionafterappend()
はappend
が実行された後にのみ実行されます。例えば
は、APPENDはそれはappend
後に何かをする最も簡単な方法です
$('div')
.append(`<p>1. Append at ${console.log(new Date())}</p>`)
$('span')
.append(`<span> 2. Another Append at ${console.log(new Date())}</span>`);
// setTimeout(() => alert("Append has been completed"), 3000);
body {
padding:50px;
}
div {
border:2px solid #bbb;
background-color:#eee;
padding:10px;
margin:10px auto;
}
span {
display:block;
width:65px;
font:bold 12px Arial,Sans-Serif;
color:white;
padding:5px 10px;
background-color:black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Lorem ipsum dolor sit amet consectetur adipiscing elitr sed diam nonumy tempe goreng.</div>
を完了した後、私は3秒アラートをトリガーしています次の例を見てみましょう。そのようなあなたのwannaチェーン機能ならば当然のを除いて、上記デュープで
const newFunc = pipe(append, prepend);
私にとっては唯一のもののようです。ハックのような気がしますが、大丈夫です。ありがとう! –
何もそれについてハッキーはありません。これは 'append'の後に何かをする最も簡単な方法です。もちろん除いて、もしそうなら、あなたのようにしたいチェーン機能: '.append( ' 1.追加 ') .prepend(' 1.追加')' のように。 完全に機能したい場合は、Lodashのように関数の構成を行うこともできます。 const newFunc = pipe(append、prepend); これも答えに加えて – nikjohn
ハッキーですが、何かするのに3秒待っていますが、3秒待たないとどうなりますか?追加された要素の準備ができたらすぐに実行したいのですが? – Huangism
:あなたは完全に機能的に行きたい場合は
.append('<span>1. Append</span>') .prepend('<span>1. Append</span>')
、あなたもそうLodashを使用してのような関数合成を行うことができますappendを呼び出す要素で 'ready()'を使用する答えがあります。まずは試してみてください。 – Huangism
同期ajax要求を使用しないでください。 –
@Huangismはそれが何であるかとは関係ありません。この場合、単に次のティックで実行するよう要求をオフにします。これは基本的に0の間隔setTimeoutと同じです。何かが "準備中"になるのを待っているわけではなく、DOMが準備ができているので、コールバックキューにプッシュバックするだけです。 –