2011-09-30 35 views
3

等等......我想是這樣的:得到這個元素屬性和使用它的其他元素

我。點擊一個元素與ID與「菜單」開始它會得到它的ATTR值=」值'到一個變量中,並在下一個函數中使用它。

這裏的源:

的index.html

<div id='menuBar' > 
    <img id='menu01' src='/si/img/menu.apresentacao.jpg' value='apresentacao' > 
    <img id='menu02' src='/si/img/menu.servicos.jpg' value='servicos' > 
</div> 

的jquery.js

$(document).ready(function() { 

$('img[id^='menu']').click(function(){ 

    var menuValue = $(this).attr('value'); 

    $('div#contentBox').fadeOut(300, function() { 
    $('div#contentBox').replaceWith('<div id="contentBox">' + menuValue + '</div>'); 
    }); 
}); 

}); 

variables.js

var servicos = "<p id='title'>Serviços</p><br><p id='text'>text text</p><br>"; 

在此先感謝*

+0

問題是? – Zirak

+1

小技巧:不要使用像$(「div#id」)這樣的選擇器,它會導致jQuery遍歷頁面上的所有div,這對您的性能確實非常糟糕。您應該只使用$(「#id」),因爲id根據定義是唯一的,並且此選擇器使用javascript的內置getElementById() - 選擇DOM元素的最快方法。 – Przemek

+0

這裏有一個錯字:$('img [id^='menu']')。click ...這是從你的代碼中確切的字符串嗎?如果是這樣,將單引號改爲雙引號$(「img [id^='menu']」) –

回答

0

與您的代碼唯一的問題是,你的選擇是畸形的,併爲此不起作用:

$('img[id^='menu']').click(function(){ 
^ ^^^ 
    |  | | | 
    |  | | \__ Closing single quote 
    |  | | 
    |  | \__ Opening single quote 
    |  | 
    |  | 
    |  \__ Closing single quote 
    | 
    \__ Opening single quote 


    ====> does not compute! 

它應該是什麼,這是(注意雙引號圍繞「菜單:):

$('img[id^="menu"]').click(function(){ 
     ^^
      | | 
      \ /
      \/
      \/ 
       \_Double quotes, yay! 

...它工作得很好:http://jsfiddle.net/HnsTu/

+0

我很笨,很痛。 ^^ –

+0

隨着我們每天看到的括號和引號的數量,這種事情發生。不用擔心,夥計。 – vzwick

+0

問題是,現在我想'var = menuValue'的值顯示爲一個變量。 (所以它到我的variable.js文件抓住相應的變量值,而不是隻顯示爲純文本) –

0

而不是使用var servicos使用圖像值作爲關鍵字的對象。

var menuValueContent = {'servicos': '<p>....</p>', 'apre': '...'}; 

並且在您的點擊處理程序中,您可以使用menuValueContent[menuValue]來獲取新內容。

相關問題