2013-02-15 204 views
1
<td><img 
    name="Brown Corkboard" 
    title="800.00" 
    id="nikolas" 
    src="materials/corkboardtexture.png" 
    alt="600" 
    onclick="reply_click(this.src,this.name,this.title,this.alt)" 
    width="200" 
    height="150"  

我在HTML表中有此圖像。我正在使用attribues title和alt來指定執行單擊​​圖像時調用的函數所需的一些值。標記內的其他屬性將值傳遞給函數

我必須走錯路。點擊圖像後,我想要將多個不同的變量發送到我的功能。然而,我已經超出了選項,因爲我已經用完了title屬性和alt屬性。有什麼建議麼?

回答

1

正如其他人已回覆,data-屬性是要走的路如果您需要攜帶HTML屬性中的任意數據。 alttitle屬性不應該用於這些目的,因爲這會干擾定義的含義和這些屬性的使用。

該示例沒有顯示任何原因,您不能簡單地將數據作爲參數寫入函數調用中,如onclick="reply_click(this.src, this.name, 800.00, 600)

或者您可以在DOM內部或外部的JavaScript對象中編寫數據,並使您的函數能夠使用例如以id屬性值爲關鍵。

+0

是的沒有理由,我最終做到了。非常感謝 – 2013-02-16 05:40:50

2

您可以添加所需的任意屬性,並將它們用作參數。

<img data-count="1" data-tree="oak" ... onclick=('reply_click(this);')> 

或任何你喜歡的東西。

function reply_click(clicked_thing) { 
    var tree = clicked_thing.getAttribute('data-tree'); 
    console.log(tree); 
} 

一般來說,我不使用我的形象標籤onclick,但綁定功能,使用JavaScript事件。

+0

不工作,我不知道爲什麼。這些單詞被刪除,值不會通過。 – 2013-02-15 22:37:28

+0

不確定你的意思 - 在javascript click處理程序中,this將是圖像(被點擊的東西),你可以用'this.getAttribute('attr_name')'獲得任何屬性的值。 – Jerry 2013-02-15 22:42:54

+0

​​600然後我的功能是:function reply_click(clicked_id,clicked_name,clicked_title,clicked_alt,clicked_newdata) – 2013-02-15 22:44:41

1

標準,這些天是data-*,一些諸如:

<tr data-id="6"><td data-desc="Test blah blah blah">Test</td></tr> 
<tr data-id="7"><td data-desc="Gary the disabled penguin">Gary</td></tr> 

常用。這取決於您的具體需求,但我通常會建議數據屬性

+0

這不似乎工作?!如果我把一些新的單詞,而不是專門爲圖像標籤指定的單詞,那麼單詞會以紅色出現,並且值不會被傳遞。 – 2013-02-15 22:36:55

+0

你是什麼意思的「走出紅色」,你是如何實現這一目標的?我會期待像這樣的'' – SmokeyPHP 2013-02-15 22:39:10

+0

。當我使用由HTML規則(如「title」或「alt」)指定的屬性時,單詞會以藍色顯示,表明語法正確。如果我使用隨機單詞,它只會以紅色字體出現,這意味着它無法識別。我按照你現在展示的方式來實現它。任何想法正在發生什麼? – 2013-02-15 22:41:13