1

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

单击 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

4 回答 4

1

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

如果你需要考虑 IE (<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);
于 2013-04-04T17:55:59.570 回答
0

尝试使用 addEventListener。链接在这里。该页面上的示例正是您所要求的。

于 2013-04-04T17:49:39.383 回答
0

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

html代码

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

JavaScript 代码

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

演示

已编辑

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>
于 2013-04-04T17:51:52.147 回答
0

首先给你div一个唯一的ID

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

然后在中设置onclick函数window.onload

var yourDiv = document.getElementById("yourDivID");

yourDiv.onclick = function() {
       if(typeof(_vis_opt_top_initialize) == "function") {
           _vis_opt_goal_conversion(200);
       }
   }
}
于 2013-04-04T17:52:31.353 回答