2013-12-09 17 views
11

Tôi có phần tử joint.js trong một DAG và muốn có thể kích hoạt sự kiện bằng cách nhấp vào nó.Cách thêm sự kiện onclick vào phần tử joint.js?

Tôi có thể sử dụng $(selector).click(...) để làm điều đó, nhưng tôi đã tự hỏi nếu có một cách cụ thể joint.js xử lý nó, vì điều đó sẽ probobly được tốt hơn. Một sự kiện tôi quyết định là một ứng cử viên cho onclick là 'hàng loạt: stop'

Mã của tôi:

var variable = new joint.shapes.basic.Rect({ 
    name : label, 
    id: label, 
    onclick : function() {alert("hello");}, 
    size: { width: width, height: height }, 
    attrs: { 
     text: { text: label, 'font-size': letterSize, 'font-family': 'monospace' }, 
     rect: { 
      fill : fillColor, 
      width: width, height: height, 
      rx: 5, ry: 5, 
      stroke: '#555' 
     } 
    } 
}); 
variable.on('batch:stop', function (element) {alert(""); toggleEvidence(element.name);}); 
return variable; 

Làm thế nào tôi nên thêm một sự kiện onclick?

Trả lời

21

Các hình dạng JointJS là các mô hình, vì vậy bạn có quyền xử lý nhấp chuột sẽ không hoạt động trên chúng. Giấy JointJS kích hoạt các sự kiện có thể hữu ích cho bạn:

paper.on('cell:pointerdown', 
    function(cellView, evt, x, y) { 
     alert('cell view ' + cellView.model.id + ' was clicked'); 
    } 
); 

các sự kiện khác là: cell: pointerup, cell: pointerdblclick, cell: pointermove.

Danh sách hoàn chỉnh có thể tìm thấy tại đây: http://jointjs.com/api#joint.dia.Paper:events.

EDIT:

Bắt đầu từ JointJS v0.9, đó cũng là một sự kiện cell:pointerclick.

+0

Cảm ơn. Tôi đã đọc sai khía cạnh của tài liệu sự kiện, vì tôi nghĩ nó sẽ liên quan đến đối tượng Element. – ahalbert

+0

@dave bạn có thể vui lòng câu hỏi này http://stackoverflow.com/questions/31794098/error-while-fetching-json-from-database – kittu

+1

Tôi đang cố gắng kích hoạt một hàm khi liên kết html bên trong phần tử jointjs được nhấp. Làm thế nào có thể được thực hiện? – 32teeths

Các vấn đề liên quan