2010-07-01 4 views
6

Tôi đang cố gắng thêm trình xử lý onClick vào một đối tượng được nhúng. Trình xử lý cần thực thi một hàm nằm trong tệp .js bên ngoài được liên kết với tệp html hiện tại qua <script src="....Làm thế nào để thêm JavaScript onClick handler vào một đối tượng html nhúng?

Tôi có cần tham chiếu chức năng khác đi do nó nằm ở nơi khác không?

Dưới đây là các mã như nó hiện đang đứng (mà không làm việc, nhưng cũng không tạo ra bất kỳ lỗi nào):

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onClick="buttonEvent('buttonClicked')"/> 
+0

Bạn không thể chỉ gọi tập lệnh bên trong svg onclick của vùng chứa chính? – mplungjan

+0

có thể trùng lặp của [Tạo đối tượng hình ảnh svg có thể nhấp được bằng onclick, tránh định vị tuyệt đối] (http://stackoverflow.com/questions/2296097/making-an-svg-image-object-clickable-with-onclick-avoiding-absolute định vị) – jtbandes

Trả lời

8

Bạn phải thực hiện onclick bên svg và liên kết nó với bên ngoài Hàm JavaScript sử dụng javascript bên trong svg. Xem SVG wiki để biết các ví dụ.

Cập nhật: Rõ ràng là SVG wiki không còn nữa. Không có gì ngạc nhiên khi các tài liệu tham khảo tốt nhất mà tôi có thể (nhanh chóng) tìm thấy là trên chính StackOverflow.

This answer describes how to implement onclick inside the svg.

+0

Cảm ơn. Tôi đã đặt onclick bên trong hình dạng svg chính nó, tuy nhiên nó bây giờ không thể tìm thấy chức năng nó đang tìm kiếm. Có lẽ vì nó nằm trong tệp .js bên ngoài? –

+0

Bạn gọi hàm ngoài từ SVG của bạn như thế nào? Bạn đã đặt trước nó với 'top.' hoặc' parent.' chưa? –

+0

Tôi đã thêm onclick = "buttonEvent()" (sau khi thử nghiệm với cảnh báo, hoạt động). Tôi nên tiền tố và ở đâu? –

1

Sử dụng liên kết javascript (Mario Menger đã trả lời rằng đã có).

Nếu bạn không thể hoặc sẽ không sử dụng ràng buộc, bạn có thể sử dụng những gì xil3 đã trả lời với một sửa đổi:

Sử dụng một sản phẩm nào neo thẻ <a href="javascript:someFunc()"></a> như người tiêu dùng nhấp chuột. Đặt z-index và vị trí/kích thước của nó để nó được định vị trên đối tượng svg (cho khả năng tương thích giữa các trình duyệt).

0

Tất cả các nhấp chuột phải là chữ thường.

<embed src="svg/button.svg" id="buttonEmbed" width="95" height="53" 
type="image/svg+xml" onclick="alert('hello!');"/> 
+1

Tôi không nghĩ rằng công trình. – wkm