2012-02-11 71 views
0

任何人都可以給我如何確定onclick事件被調用的語法。如何獲得onclick函數的調用javascript

我想這取決於從的onclick

前來到這裏改變H4內容。如果在「編織徽章」中調用label(),h4 innerhtml將是「編織徽章」 如果在「編織磁帶」中調用label(),h4 innerhtml將是「編織磁帶」

我想合併只是一個函數,而不是實際創建一個函數每個類別,即時通訊目前正在做我的JavaScript下面。如何創建它,如果條件?

function label() 
{ document.getElementsByTagName("h4")[0].innerHTML="badges";} 


<ul class="overview"> 

<li><img src="images/UniwinNav.jpg" align="texttop"/><a href=""><div class="listlabel">Woven Labels</div></a></li> 

<li><img src="images/UniwinNav.jpg" align="texttop"/><a href="#" onClick='label()'><div class="listlabel">Woven Badges</div></a></li> 

<li><img src="images/UniwinNav.jpg" align="texttop"/><a href=""><div class="listlabel">Woven Tapes</div></a></li> 
<li><img src="images/UniwinNav.jpg" align="texttop"/><a href=""><div class="listlabel">Woven WaistBands</div></a></li> 


<h4>Product Specification</h4> 


     </ul> 

回答

1

添加「格」元素只是通過this作爲參數傳遞給了label()功能。這是對發起事件的因素的參考。然後,您可以通過抓取第一個子元素的內部HTML輕鬆找到所需的字符串。

<script type="text/javascript"> 
function label(element) { 
    document.getElementsByTagName("h4")[0].innerHTML=element.firstChild.innerHTML; 
    return false; 
} 
</script> 

<ul class="overview"> 

<li><img src="images/UniwinNav.jpg" align="texttop" /><a href="#" onclick="return label(this)"><div class="listlabel">Woven Labels</div></a></li> 
<li><img src="images/UniwinNav.jpg" align="texttop" /><a href="#" onclick="return label(this)"><div class="listlabel">Woven Badges</div></a></li> 
<li><img src="images/UniwinNav.jpg" align="texttop" /><a href="#" onclick="return label(this)"><div class="listlabel">Woven Tapes</div></a></li> 
<li><img src="images/UniwinNav.jpg" align="texttop" /><a href="#" onclick="return label(this)"><div class="listlabel">Woven WaistBands</div></a></li> 

<h4>Product Specification</h4> 

請注意,這是一個返回值添加到label()功能,並返回被點擊的元素時是一個好主意。這將取消默認的瀏覽器操作,這意味着你不會在你的位置得到那個令人討厭的#角色。

+0

謝謝。但我怎麼樣也想改變onclick標籤內的文字的顏色? – Teffi 2012-02-12 14:33:47

1

添加一個參數,當label()被調用時它會通過源。你可以像下面那樣傳遞一個字符串,或者你可以傳遞錨點本身,並使用它與jQuery來找到你正在修改的孩子。你不必使用jQuery,但如果你想我給你下面的例子。

function label(source){ 
    $(source).find('h4').html('badges'); 
}; 

<a href... onClick='label(this)'> 
2

只是在功能上添加標籤參數:

label(type) 

而在你的HTML定義類型:

<a href="#" onClick="label('badges')">Woven Badges</a> 
<a href="#" onClick="label('tapes')">Woven tapes</a> 

而在你的功能標籤,請爲每種類型的治療。

PS:你不應該在「一」元素

1

你有一個上下文 - this - 在任何事件處理程序。它綁定到與事件關聯的元素。所以,你可以做水木清華這樣的:

function my_handler(elem) { 
    elem.href // contains href of anchor, eg '#Woven_WaistBands' 
} 

<li><img src="images/UniwinNav.jpg" align="texttop"/><a href="#Woven_Tapes" onclick="my_handler(this); return false;"><span class="listlabel">Woven Tapes</span></a></li> 
<li><img src="images/UniwinNav.jpg" align="texttop"/><a href="#Woven_WaistBands" onclick="my_handler(this); return false;"><span class="listlabel">Woven WaistBands</span></a></li> 

<h4 id="Woven_Tapes">blah blah</h4> 
<h4 id="Woven_WaistBands">...</h4> 

但最好不要重複你的自我和綁定處理程序使用jQuery或本機addEventListenet(即少可移植的方式,現在因爲IE的)事件。