2013-04-04 54 views
1

我已经花了最后几个小时试图找到答案,但似乎没有工作...如何在单击div时执行代码?

我需要执行一段代码时,一个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> 

任何帮助,将不胜感激:)

+1

您使用此搜索并找不到任何内容? – 2013-04-04 17:49:14

+0

个人而言,我讨厌把所有的代码放在onclick上。创建一个名为'function testfunction(){alert('test');}'的函数,然后在点击时调用该函数。这是为了确保它正在发射。然后,您可以更轻松地调试您的问题.e – Leeish 2013-04-04 17:49:27

+0

如果点击位于iframed文档内,它将无法工作。 – bfavaretto 2013-04-04 17:53:12

回答

0

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

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> 
+4

他们甚至没有提到jQuery ... – 2013-04-04 17:56:27

+0

@杰夫剃须刀:回答编辑。 – KF2 2013-04-04 18:26:15

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); 
     } 
    } 
} 
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); 
相关问题