1

マップのテーマ セレクターを構築しており、現在選択されているテーマを反映したいと考えています。

コードは機能しているように見えますが、「li」アイテムの値を返すことはありません。クリックした「li」アイテムに対して常に「s-thumbs」を返します。私は .closest() メソッドを使用しようとしましたが、役に立ちませんでした。

私はこの記事に従っています。

    <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>
4

5 に答える 5

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

デモjsFiddle

.on()メソッドを使用: http://api.jquery.com/on/イベントの後に特定の要素を追加(クリック)

.live()これは、(現在) 廃止されたメソッドの新しい代替です。

于 2012-05-08T16:16:06.483 に答える
2
$('ul.s-thumbs li').on('click', function(){
  var getClass = $(this).attr('class');
  $("#theme_title").text(getClass);
});

デモリンク: http://jsfiddle.net/ChaseWest/w2tCE/4/

于 2012-05-08T16:17:31.437 に答える
1
$("ul.s-thumbs").on("click", "a", function(event) {
  var txt = $(this).closest("ul.s-thumbs li").attr("class");
  $("#theme_title").text(txt);
 });

NOTE live()は廃止されました。

于 2012-05-08T16:16:49.050 に答える
1
<script language="javascript">
    $(document).ready(function() {
        $(".s-thumbs").on("click", "a", function(e) {
            $("#theme_title").text( $(e.target).parent("li").attr("class") );
        });
    });
</script>
于 2012-05-08T16:28:46.767 に答える
1

ul ではなく、li にイベント ハンドラを追加します。また、Jquery 1.7+で推奨される方法を使用しました

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

デモ: http://jsfiddle.net/euSye/1/

于 2012-05-08T16:26:09.117 に答える