input点击事件失效
原因:
异步导致绑定失败,需使用全局绑定事件
<div>
<ul class="m-setting01" id="inputForm">
<li class="setting-con02" v-for="item in inputFormList">
<div class="setting-box01">
<span class="setting-lab02">{{item.fieNameC}}</span>
<input type="text" v-if="item.fieType == 'T'" v-model="formData[item.fieName]" class="setting-ipt04" :placeholder="item.parabsName" :id="item.fieName">
<input type="text" v-else readonly="readonly" v-model="formData[item.fieName]" class="setting-ipt04" :placeholder="item.parabsName" :id="item.fieName">
</div>
</li>
</ul>
</div>
<script>
getInputFormList: function () {
var that = this
var params = {
'doctorSn': this.doctorSn,
'hospitalId': this.doctorInfo.hospitalId,
'hosDeptId': this.doctorInfo.hosDeptId
}
getInputFormControls(params).then(function (res) {
if (res.result) {
that.inputFormList = res.result
console.log(res.result)
for (var item of res.result) {
that.formData[item.fieName] = ""
if (item.fieType == 'C') {
// 先绑定全局,再绑定局部
$("#inputForm").on("click", '#' + item.fieName, function() {
console.log('333333333')
})
}
}
}
})
}
</script>
// 失效
$('#' + item.fieName).on("click", function() {
console.log('333333333')
})
// 解决办法
$("#inputForm").on("click", '#' + item.fieName, function() {
console.log('333333333')
})
参考文档: