将事件添加到动态HTML

时间:2012-03-30 04:03:09

标签: javascript html events

Nees一些建议。

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

这是我目前的代码:

var evt1 = true;

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

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

感谢。

2 个答案:

答案 0 :(得分:2)

你不能只检查事件处理程序中的条件,如果它是假的则不执行任何操作吗?

答案 1 :(得分:0)

如果您需要在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>";

但同样,这是...... 可怕的编码风格。