2013-04-04 55 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); 
相關問題