2009-07-03 24 views
6

Tôi đang sử dụng plugin Trình xem trước của JQuery để hiển thị một số dữ liệu. Về cơ bản, tôi muốn thêm một sự kiện nhấp chuột vào con < li> các phần tử sao chép innerhtml của chúng vào một div khác trên trang. Tuy nhiên, tôi đã không thể chỉ định một sự kiện nhấp chuột cho các yếu tố này < li>.Gán các sự kiện nhấp vào < li > trong JQuery Treeview

Hy vọng một người nào đó đã vượt qua mặt đất này trước và có thể cung cấp một số trợ giúp.

Cảm ơn.

+0

Bạn đã cố gắng chỉ: (" #nameOfLi "). click (function() {alert ('foo');}) ;? – Peter

+1

có - Dường như nó không đính kèm nhấp chuột ngay cả với tôi. Cùng một mã sẽ đính kèm một sự kiện bấm vào các phần tử ở bất kỳ đâu trên trang bên ngoài của khung nhìn (rõ ràng). – WorkingWeb

+0

Bạn có thể đăng đoạn mã không? – Peter

Trả lời

6

Sử dụng đánh dấu từ ví dụ ở http://docs.jquery.com/Plugins/Treeview:

$("span.file, span.folder", "#example li") 
    .click(function() { alert($(this).text()); }); 

công trình. Xử lý các nhấp chuột vào các mục LI bản thân nắm bắt các cơn co thắt chi nhánh và mở rộng.

+1

Cảm ơn, nhận xét của bạn đã khiến tôi nhận ra đó là cách tôi tạo dựng hình ảnh treeview (thông qua JSON và thêm các nhánh) đang gây ra vấn đề. Tôi đã có thể giải quyết vấn đề của mình bằng cách chỉ định sự kiện nhấp chuột ngay sau khi tôi đã thêm các nhánh được tạo động. – WorkingWeb

6

Bạn có thể sử dụng công trình .live. Đối với tôi nó hoạt động:

$('li','ul#menu').live('click', function(){ 
    alert('Click event');  
}); 
0

Hãy thử như thế này

$('li:not(:has(>ul))', 'ul#menu').live('click', function() {    
       alert($(this).text()); 
      }); 

nó sẽ thêm sự kiện click vào nút lá chỉ (không nút gốc)

1
<li onclick="selectNode(event, this);" id="${node2.nodeId}" class="closed"> 
    <span class="folder"> ${node2.name} </span> 
</li> 




function selectNode(event, nodeHtmlEl) { 
    // IE 
    if ($.browser.msie) { 
     window.event.cancelBubble = true; 
    } 
    if(event.stopPropagation) { 
     event.stopPropagation(); 
    } 
    alert("selectNode ID: " + $(nodeHtmlEl).attr("id")); 
} 
Các vấn đề liên quan