将活动添加到动态HTML

问题描述:

需要一些建议。将活动添加到动态HTML

根据我的情况,需要将事件传递给span范围。请帮忙。

这里是我当前的代码:

var evt1 = true; 

var my_evt = (evt1 ? function() { alert('test'); } : null); 

var str = "<span onclick=my_evt></span>"; 

感谢。

+0

什么范围? HTML代码在哪里? – aaaidan 2012-03-30 04:05:22

+0

var str =' user1215811 2012-03-30 04:05:27

+0

对不起,当我第一次尝试发布我的HTML代码消失。 – user1215811 2012-03-30 04:06:06

难道你不能只检查事件处理程序内部的条件,如果它是假的什么也不做?

如果你需要有点击执行一些代码时evt1是真的,我会建议只是把代码中的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>"; 
} 

虽然在一般,你必须有一个很好的理由使用这种方法,因为该字符串必须最终进入HTML文档才有用。

您也可以建立串这样的:

var str = "<span" + (evt1 ? " onclick=\"function() { alert('test'); }\"" : "") + "></span>"; 

但同样,这就是 - 什么都不缺可怕编码风格。