2012-05-08 41 views
1

我正在構建地圖的主題選擇器,並且想要反映當前選定的主題。Jquery在點擊li項目時更改div文本值

該代碼似乎工作,但從不返回「li」項目的值,它總是返回「s-thumbs」,無論我點擊的任何「li」項目如何。我嘗試使用.closest()方法,但無濟於事。

我下面this article.

<script language="javascript"> 
    $("ul.s-thumbs").live("click", function(event) { 
     $("#theme_title").text(
      $(this).closest("ul.s-thumbs li").attr("class") 
     ); 
    }); 
    </script> 


    <div id="theme">You have selected the <div id="theme_title"></div> Theme</div> 
     <div class="container_16" id="themebg"> 
     <!--<div class="grid_1"> <a href="" "img" src="/styles/image/leftarrow.png" id="leftarrow" alt=""/></div>--> 
     <div class="grid_16 slider-wrapper"> 
     <ul class="s-thumbs"> 
        <li class="Default"> <a href="javascript:setRoadmap()"><img src="/styles/image/thumbs/default.png" alt="" /></a>Default</li> 
        <li class="Hatchery"> <a href="javascript:setGreen()"><img src="/styles/image/thumbs/hatchery.png" alt="" /></a>Hatchery</li> 
</ul> 
</div> 
+0

爲什麼你使用'活()'?什麼是'#theme_title'? – fcalderan

+0

我使用了live(),因爲我按照鏈接的文章(有點更新)我同意:) #theme_title是我希望文本出現的div。對不起,我應該在代碼中粘貼它,現在更新它 – ficho

回答

2
$('ul.s-thumbs li').on('click', function(){ 
    var getClass = $(this).attr('class'); 
    $("#theme_title").text(getClass); 
}); 

演示鏈接:http://jsfiddle.net/ChaseWest/w2tCE/4/

+0

我不明白它在小提琴中有效,但不在我的頁面中arghh – ficho

+0

將jQuery代碼在$(document).ready()函數中,就像它在小提琴中一樣,如果你還沒有它的話 – Chase

+0

你有沒有但它不能工作 – ficho

3
$("ul.s-thumbs").on("click", "li", function() { 
    var myText = $(this).attr("class"); 
    alert(myText);   
    $("#theme_title").text(myText); 
}); 

Demo jsFiddle

使用。對()梅託德:http://api.jquery.com/on/事件後添加特定元素(點擊)

這是(今天)已棄用.live()方法的新替代品。

+0

只需將它複製粘貼到我的代碼上,但它似乎不起作用。 – ficho

+0

Gotcha我會用。on替換.live()謝謝:)。 爲什麼添加「a」?這只是如何。()的作品? – ficho

+0

你有我上面發佈的jQuery API鏈接。你會發現那裏所有你需要的信息! –

1
$("ul.s-thumbs").on("click", "a", function(event) { 
    var txt = $(this).closest("ul.s-thumbs li").attr("class"); 
    $("#theme_title").text(txt); 
}); 

注意live()已被棄用。

1

添加事件處理程序裏,而不是上行。我也用的是jQuery中的首選方法1.7+

$("ul.s-thumbs li").on("click", function(event) { 
    $("#theme-title").html(  
     $(this).attr("class") 
    ); 
}); 

演示:http://jsfiddle.net/euSye/1/

1
<script language="javascript"> 
    $(document).ready(function() { 
     $(".s-thumbs").on("click", "a", function(e) { 
      $("#theme_title").text($(e.target).parent("li").attr("class")); 
     }); 
    }); 
</script> 
+0

它應該得到「李」類? – adeneo