Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将事件添加到动态HTML_Javascript_Html_Events - Fatal编程技术网

Javascript 将事件添加到动态HTML

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=“

需要一些建议

需要根据我的情况将事件传递到跨度的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=“”;

谢谢。

你不能检查事件处理程序中的条件,如果条件为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的建议。