Javascript 将事件添加到动态HTML
需要一些建议 需要根据我的情况将事件传递到跨度的onclick。请帮忙 这是我目前的代码:Javascript 将事件添加到动态HTML,javascript,html,events,Javascript,Html,Events,需要一些建议 需要根据我的情况将事件传递到跨度的onclick。请帮忙 这是我目前的代码: var evt1 = true; var my_evt = (evt1 ? function () { alert('test'); } : null); var str = "<span onclick=my_evt></span>"; var evt1=true; var my_evt=(evt1?函数(){alert('test');}:null); var str=“
var evt1 = true;
var my_evt = (evt1 ? function () { alert('test'); } : null);
var str = "<span onclick=my_evt></span>";
var evt1=true;
var my_evt=(evt1?函数(){alert('test');}:null);
var str=“”;
谢谢。你不能检查事件处理程序中的条件,如果条件为false,就什么也不做吗?如果你需要在evt1为true时单击执行一些代码,我建议只在HTML本身实际跨度的
onclick中插入代码
<span onclick="if (evt1) { myEvt() }">...</span>
。。。
用Javascript动态构建HTML通常会“激怒饥饿的人”。特别是如果HTML本身包含更多的Javascript。这有点像噩梦
但如果你的心已经下定了决心,那么有一种方法可以做到:
var str;
if (evt1) {
str = "<span onclick=\"function() { alert('test'); } \"></span>";
} else {
str = "<span></span>";
}
var-str;
如果(evt1){
str=“”;
}否则{
str=“”;
}
不过,一般来说,使用这种方法必须有一个很好的理由,因为字符串最终必须进入HTML文档才能发挥作用
您还可以建立如下字符串:
var str = "<span" + (evt1 ? " onclick=\"function () { alert('test'); }\"" : "") + "></span>";
var-str=”“;
但再一次,这是。。。简直就是可怕的编码风格 什么跨度?HTML代码在哪里?var str='很抱歉,当我第一次尝试发布HTML代码时,它被拒绝了。@user1215811您需要使用“代码格式”按钮添加HTML(或通过每行4倍缩进自己格式化)。谢谢Marty的建议。