2008-12-07 3 views

Trả lời

53

Nếu bạn đang sử dụng JQuery bạn có thể làm:

$('#elementid').click(); 
+2

nó không hoạt động để kích hoạt các html chọn yếu tố onClick trường hợp thả xuống các tùy chọn của chọn, tại sao? –

+1

$ ('# elementid'). Trigger ("bấm"); –

46

Khi bạn đã chọn một yếu tố bạn có thể gọi vào()

document.getElementById('link').click(); 

see: https://developer.mozilla.org/En/DOM/Element.click

Tôi không nhớ nếu điều này hoạt động trên IE, nhưng nó cần. Tôi không có máy cửa sổ gần đó.

+0

Nó hoạt động trên mọi trình duyệt http://www.w3schools.com/jsref/met_html_click.asp – rahmanisback

1

tôi đã không sử dụng jQuery, nhưng IIRC, phương pháp đầu tiên đề cập không kích hoạt các handler onclick.

Tôi sẽ gọi trực tiếp phương thức onclick được liên kết nếu bạn không sử dụng chi tiết sự kiện.

2

chỉ cần gọi "onclick"!

đây là một ví dụ html:

<div id="c" onclick="alert('hello')">Click me!</div> 
<div onclick="document.getElementById('c').onclick()">Fake click the previous link!</div> 
+2

Thật không may điều này sẽ không điền vào các đối tượng sự kiện ... –

+1

ông đã không đề cập rằng ông muốn điền vào một "sự kiện" đối tượng .. chỉ rằng ông muốn gọi phương pháp. Plus Tôi không chắc chắn những gì đối tượng evernt là bạn nói về! – hasen

+0

Tất cả các bài đọc của tôi hôm nay chỉ để sử dụng .click(), sử dụng .onclick() giải quyết vấn đề của tôi với safari 5.1.7 trên win7 không nhận ra .click(). chrome, FF, safari trên iPad IOS6 được công nhận .click(). Nó khiến tôi khốn khổ! Cảm ơn hasen j PS $ ('elementid'). Onclick() đã làm việc với các trình duyệt khác vì vậy không cần phải ngoại lệ cho Safari 5.1.7. Tôi không có ý tưởng về IE vì có rất nhiều vấn đề với nó, tôi không thể đến gần mã này để kiểm tra nó. Đó là một ngày khác. – Jim

2

Đối với IE có fireEvent() phương pháp. Không biết nếu điều đó làm việc cho các trình duyệt khác.

4

@ Vilx-

Firefox sử dụng element.dispatchEvent.

Trang bao gồm mẫu simulateClick().

+1

Tôi không thấy mẫu simulateClick() ở đó. Tại sao chúng ta phải sao chép mọi thứ ở đây, bởi vì các trang thay đổi. – JosephK

3

Đây là ví dụ hoàn hảo về nơi bạn nên sử dụng thư viện javascript như Prototype hoặc JQuery để trừu tượng hóa sự khác biệt giữa các trình duyệt.

6

Tôi có thể hiểu sai câu hỏi của bạn, nhưng, có, điều này là có thể. Cách mà tôi sẽ đi về làm việc đó là thế này:

var oElement = document.getElementById('elementId'); // get a reference to your element 
oElement.onclick = clickHandler; // assign its click function a function reference 

function clickHandler() { 
    // this function will be called whenever the element is clicked 
    // and can also be called from the context of other functions 
} 

Bây giờ, bất cứ khi nào yếu tố này được nhấp, mã trong clickHandler sẽ thực hiện. Tương tự, bạn có thể thực thi cùng một mã bằng cách gọi hàm từ bên trong ngữ cảnh của các hàm khác (hoặc thậm chí chỉ định clickHandler để xử lý sự kiện được kích hoạt bởi các phần tử khác)>

+0

Giả sử bạn có vấn đề nếu bạn muốn sử dụng "ev.target" trong trình xử lý nhấp chuột này ... – daddywoodland

-3

Bạn cũng có thể thử nhận thuộc tính onclick của phần tử và sau đó đi vào eval Điều này sẽ làm việc mặc dù điều cấm kỵ lớn hơn eval.Tôi đặt một mẫu dưới đây

eval(document.getElementById('elementId').getAttribute('onclick')); 
+1

Tính năng này hoạt động tốt trừ khi tập lệnh onclick tham chiếu nội dung không được nhập vào không gian tên của tập lệnh. – ascotan

4

Nếu bạn đang sử dụng jQuery, bạn cần phải sử dụng .trigger chức năng, vì vậy nó sẽ là một cái gì đó như:

element.trigger('click'); 

http://api.jquery.com/trigger/

0

Sử dụng javascript bạn có thể kích hoạt click()focus() như bên dưới ví dụ

document.addEventListener("click", function(e) { 
 
    console.log("Clicked On : ",e.toElement); 
 
},true); 
 
document.addEventListener('focus',function(e){ 
 
    console.log("Focused On : ",e.srcElement); 
 
},true); 
 

 
document.querySelector("#button_1").click(); 
 
document.querySelector("#input_1").focus();
<input type="button" value="test-button" id="button_1"> 
 
<input type="text" value="value 1" id="input_1"> 
 
<input type="text" value="value 2" id="input_2">