Vueコンポーネントを使用して、追加されたHTML要素内で@click関数を使用する際に問題が発生します。vue onclick関数の内部で追加されたhtmlが動作しない
成分は以下のように、容器の内部divを追加および削除するには、2つのボタンを持っている:
<div class="col-md-12">
<button class="btn btn-sm btn-warning" @click.prevent.stop="addQuestion()">Add Question</button>
<button class="btn btn-sm btn-danger" @click.prevent.stop="removeQuestion()" v-if="notRemovableQuestion">Remove Question</button>
</div>
addQuestion機能は以下の通りである:
addQuestion(){
var newQuestion = '<div class="questionBox col-md-12 f-left p-2 mt-2" style="border:2px solid blue;">' +
'<div class="col-md-11 f-left">' +
'<input type="text" class="form-control" name="domanda" placeholder="Question" v-model="domanda" />' +
'<input type="text" class="form-control" name="question_description" placeholder="Question Description" v-model="question_description" />' +
'<div class="form-check">' +
'<div class="newAnswerActions f-left full-width col-md-12 mb-2 mt-2">' +
'<a class="btn btn-sm btn-warning" @click.native="addAnswer()">Add Answer</a>' +
'<a class="btn btn-sm btn-danger" @click.native="removeAnswer()" v-if="notRemovableAnswer">Remove Answer</a>' +
'</div>' +
'<label class="form-check-label">' +
'<input class="form-check-input" type="radio" name="risposte" id="exampleRadios1" value="">' +
'<input type="text" class="form-control" name="answer" placeholder="Risposta" />' +
'</label>' +
'</div>' +
'</div>' +
'<div class="col-md-1 f-left">' +
'<button class="btn btn-sm btn-success" @click.prevent.stop="removeQuestion()">SAVE</button>' +
'</div>' +
'</div>';
$(".allQuestionContainer").append(newQuestion); }
新しいコンテナが正常に追加されるが、2つの「AddAnswer =」と@ click.native = "removeAnswer()"が動作していません。私はネイティブと一緒に、または何もしないで、js onClickと一緒に試しましたが、運はありません。機能は決して到達せず、動作していないクリックイベントです。
私は間違っていますか?助言がありますか?
ありがとうございます!
つまり、Vueインスタンスが登録された後**ページにコンテンツを追加しているため、新しく追加された小道具は反応しません。私はこれが前にどこかで答えられていると確信していますので、私は掘り起こして見ていきます。 – webnoob
は、addQuestion関数がエクスポートのデフォルト{メソッド:{addQuestion()} // – Murphz
の中にあることを忘れてしまったのですが、なぜこのようにVueとJQueryを混在させていますか?これは純粋なvueで行うことができ、それはすべてが正しくリンクされることを意味します。 – webnoob