2015-10-16 40 views
-1

我有以下的HTML如何使用關鍵字在jQuery的

<li class = "item" data-id="0">Test<p>Test</p></li> 

裏不會被自動添加到頁面。它使用ajax生成。當有人點擊li時,如何激發點擊事件?我知道我必須使用「on」關鍵字。我試過,但它不工作。如何使用on關鍵詞來改變li中最近p的值?

這裏就是我有

$(document).on("click", ".item", function(e){ 
     var target = e.target; 
     console.log(target); 
     var id = $(e).dataset.id; 
     console.log(id); 
     var mark = $(e).closest('p'); 
     IssueViewer.showItem(id, mark); 
    }); 
+0

'on'不是[JavaScript關鍵字](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords),它是jQuery對象的一種方法。 –

回答

1

在單擊處理程序,使用$(this).find('p')瞄準p元素,$(this).data('id')以獲得點擊li的數據-ID:

$(document).on("click", ".item", function() { 
 
    var id= $(this).data('id'); 
 
    
 
    $(this).find('p').text('Changed: '+id); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li class="item" data-id="0">Test<p>Test</p></li> 
 
</ul>

+0

如何獲取data-id標籤? – Jasmine

+0

查看我的更新.. –

0

你可以試試這個。我已經包括內使用註釋解釋:

$(document).ready(function(){ /* PREPARE THE SCRIPT */ 
    $(".item").click(function(){ /* WHEN AN LI WITH A CLASS OF ITEM IS CLICKED */ 

    var elem = $(this); /* THE CLICKED ELEMENT */ 
    var etarget = elem.target; /* GET THE HTML ELEMENT */ 
    console.log(etarget); /* PRINT TO THE CONSOLE THE ELEMENT THAT WAS CLICKED */ 
    var id = elem.attr("data-id"); /* GET THE ID OF THE CLICKED LI */ 
    console.log(id); /* PRINT TO THE CONSOLE THE ID OF THE CLICK LI */ 
    elem.find("p").html(id); /* CHANGE THE CONTENT OF THE P CHILD */ 

    }); 
}); 

您還可以檢查此JSFiddle