单击div时如何执行代码?

时间:2013-04-04 17:46:36

标签: javascript iframe onclick execute

我花了最后几个小时试图找到答案,但似乎没有任何作用......

当点击div(或其中的任何内容;包括iframe内容)时,我需要执行一段代码。下面的代码应该这样做(当添加到div标签中时),但它似乎不起作用。

onclick="if(typeof(_vis_opt_top_initialize) =='function'){ _vis_opt_goal_conversion(200); _vis_opt_pause(500);}"

目的是执行自定义转化目标:

<script type="text/javascript">
   if(typeof(_vis_opt_top_initialize) == "function") {
   _vis_opt_goal_conversion(200);
   }
</script>

任何帮助将不胜感激:)

4 个答案:

答案 0 :(得分:1)

我讨厌使用内联js ...讨厌它......

如果你需要考虑IE(&lt; 8),那么就不能使用addEventListener,所以你可以这样做:

function bindListener(el,eventName,eventHandler) {
    if (el.addEventListener) { // Anything but IE <8
        el.addEventListener(eventName,eventHandler,false);
    } else if (el.attachEvent) { // For IE <8
        el.attachEvent('on'+eventName,eventHandler);
    }
}

然后你可以用这样的东西来调用它:

var ele = document.getElementById('idOfElement');

bindListener(ele, 'click', functionToCall);

答案 1 :(得分:0)

尝试使用addEventListener。 Link here。该页面上的Example正是您所要求的。

答案 2 :(得分:0)

我为你写了一个简单的例子:(j查询答案)

Html代码

<div class="test">Click</div>

JavaScript代码

$('div.test').click(function(){
    alert("some");
});

Demo

<强>被修改

JavaScript示例

<html >
<script type="text/javascript">
function AttachAllDivEvents()
{
var divCollection = document.getElementsByTagName("div");
for (var i=0; i<divCollection.length; i++)
{
AttachDivClickEvent(divCollection[i]);
}
}
function AttachDivClickEvent(divObj)
{
divObj.onclick = function()
{
document.getElementById("count").innerHTML = parseInt(document.getElementById("count").innerHTML) + 1;
};
}
window.onload = AttachAllDivEvents;
</script>

<body>
<div>click</div>
<p id="count" style="font:bold 20px Times;color:red;text-indent:20px">1</p>
</body>
</html>

答案 3 :(得分:0)

首先为您的div提供唯一ID

<div id="yourDivID"></div>

然后在window.onload

中设置onclick功能
var yourDiv = document.getElementById("yourDivID");

yourDiv.onclick = function() {
       if(typeof(_vis_opt_top_initialize) == "function") {
           _vis_opt_goal_conversion(200);
       }
   }
}