Walaupun kaedah document.form.button.click() ialah pendekatan biasa untuk mencetuskan klik butang, mungkin terdapat keadaan di mana anda mahu mensimulasikan acara onclick sebenar.
Untuk mensimulasikan acara onclick tanpa menggunakan Prototype.js, anda boleh memanfaatkan kod berikut:
function simulate(element, eventName) { // Define options and event type const options = extend(defaultOptions, arguments[2] || {}); let oEvent, eventType = null; for (const name in eventMatchers) { if (eventMatchers[name].test(eventName)) { eventType = name; break; } } // Ensure event type support if (!eventType) { throw new SyntaxError("Only HTMLEvents and MouseEvents interfaces are supported."); } // Create event using `document.createEvent` if (document.createEvent) { oEvent = document.createEvent(eventType); if (eventType === "HTMLEvents") { oEvent.initEvent(eventName, options.bubbles, options.cancelable); } else { oEvent.initMouseEvent( eventName, options.bubbles, options.cancelable, document.defaultView, options.button, options.pointerX, options.pointerY, options.pointerX, options.pointerY, options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, options.button, element ); } element.dispatchEvent(oEvent); } else { // Internet Explorer fallback options.clientX = options.pointerX; options.clientY = options.pointerY; const evt = document.createEventObject(); oEvent = extend(evt, options); element.fireEvent("on" + eventName, oEvent); } return element; }
Untuk menggunakan fungsi ini , hanya masukkan elemen dan nama acara:
simulate(document.getElementById("btn"), "click");
Anda juga boleh menentukan pilihan tambahan untuk menyesuaikan acara, seperti koordinat tetikus:
simulate(document.getElementById("btn"), "click", { pointerX: 123, pointerY: 321 });
Pendekatan ini memberikan lebih fleksibiliti dan kawalan ke atas mensimulasikan peristiwa klik tetikus dalam JavaScript.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Peristiwa Klik Tetikus dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!