- 59
- -1
初学vue写考试系统
问题代码功能:为了生成单选题的ABCD选项
原方案:
<div v-if="todo2.answer1 != ''">A. {{todo2.answer1}}</div>
<div v-if="todo2.answer2 != ''">B. {{todo2.answer2}}</div>
<div v-if="todo2.answer3 != ''">C. {{todo2.answer3}}</div>
<div v-if="todo2.answer4 != ''">D. {{todo2.answer4}}</div>
然后来了新需求:需要显示随机选项(增加抄袭难度),于是改成如下。
选项变成动态增加的dom,然后增加了selkey方法来保存答案,然而selkey貌似没有工作。
问:
1.这个是vue事件绑定方法不对?selkey为何不工作?
2.可能还是在用jquery的思维方式写代码,这个随机选项的功能,vue实现的思路该如何?
<div v-html="randsmall(index,index2)"></div>
methods: {
randsmall: function(index,index2) {
let q=this.all[index].questions[index2];
console.log(this.all);
let newarr=[];
switch(q.qtype)
{
case '单选':
if(q.answer1 != ''){
str='<div class="radio" v-on:click="selkey($event)" truekey="A'+q.qid+'"><label><input type="radio" name="Q'+q.qid+'">'+q.answer1+'</label></div>';
newarr.push(str);}
if(q.answer2 != ''){
str='<div class="radio" v-on:click="selkey($event)" truekey="B'+q.qid+'"><label><input type="radio" name="Q'+q.qid+'">'+q.answer2+'</label></div>';
newarr.push(str);}
if(q.answer3 != ''){
str='<div class="radio" v-on:click="selkey($event)" truekey="C'+q.qid+'"><label><input type="radio" name="Q'+q.qid+'">'+q.answer3+'</label></div>';
newarr.push(str);}
if(q.answer4 != ''){
str='<div class="radio" v-on:click="selkey($event)" truekey="D'+q.qid+'"><label><input type="radio" name="Q'+q.qid+'">'+q.answer4+'</label></div>';
newarr.push(str);}
}
shuffle(newarr);
return newarr.join('');
break;
case '多选':
//...;
break;
case '填空':
//...;
break;
}
return newarr.join('<br>');
},
selkey: function(e) {//保存答案代码
console.log(e.currentTarget);
}
} - 共 -1 条
- 全部回答
-
空无一友 普通会员 1楼
在Vue中,你可以使用
$refs和on方法来动态添加DOM元素并绑定事件。以下是一个简单的例子:```javascript // 假设我们有一个数据模型 var data = { name: 'John Doe', email: 'john.doe@example.com' };
// 我们先添加一个新的DOM元素 var newElement = document.createElement('div'); newElement.textContent = data.name; document.body.appendChild(newElement);
// 然后我们可以使用$refs属性来获取这个新的DOM元素 var ref = newElement.$refs.myRef;
// 最后,我们可以使用on方法来绑定事件 ref.addEventListener('click', function() { console.log('Hello, world!'); }); ```
在这个例子中,我们首先创建了一个新的
div元素,并设置了它的文本内容。然后,我们使用$refs属性来获取这个新的DOM元素,并将其添加到body元素中。最后,我们使用on方法来绑定一个点击事件。注意,
$refs属性的语法是newEl.$refs.myRef,其中newEl是你之前创建的新的DOM元素的引用。myRef是你想要绑定事件的元素的引用。另外,
on方法会立即绑定事件,如果你想要延迟绑定事件,你可以使用addEventListener方法。例如:javascript ref.addEventListener('click', function() { console.log('Hello, world!'); }, false);在这个例子中,我们使用
addEventListener方法来绑定一个点击事件,但是我们设置了第二个参数为false,这意味着事件只会在click事件被触发时被绑定。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
