原生js觸發click(原生js觸發click事件)

本文目錄一覽:

原聲js怎麼觸發click事件

如果你只需要觸發那些常見的事件,比如說滑鼠點擊,並且不考慮跨瀏覽器兼容的問題的話,只需要這樣做:

document.getElementById(‘myLink’).click()

當然這麼做的兼容性並不好,比如說 FireFox 就不幹。另外 onclick() 這樣的方法只能用於在 HTML 中的內聯寫法。

如果事情稍微複雜一些,比如說你要觸發一些自定義的事件,那麼你必須要理解 DOM 裡面的「事件對象模型」,本質上 $.trigger() 就是對這些概念的封裝。不過問題是 DOM 的一致性和兼容性一直都不太好,所以關於事件的對象模型長期以來都處於一個比較混亂的狀況下,如果不用 jQuery 的話,想找到一個既簡單又足夠健壯的解決方案並不容易。

很長時間以來,人們都是這樣做的:

// 創建一個事件對象,就好像你綁定事件回調函數里獲得的那個事件對象一樣

var myEvent = document.createEvent(‘Event’)

// 初始化這個事件對象,為它提高需要的「特性」

myEvent.initEvent(‘myEventName’, true, true)

// 按照常見的方式綁定對該事件的監聽,這裡的 element 可以是任何一個元素,你懂的

element.addEventListener(‘myEventName’, function(evt) {

// 這裡,evt 就是你創建的事件對象了,不過它會更豐富一些——這些是瀏覽器為你做的

})

// 然後這樣觸發它

element.dispatchEvent(myEvent)

你必須要去閱讀 createEvent initEvent dispatchEvent 這些方法的文檔來完整認識它們(文檔可以去 MDN 找),上面介紹的只是基本用法。$.trigger() 所封裝的也就是它們(及其相關的兼容性處理等等)。不過這些方法已經有點「過時」了,特別像 initEvent 這樣的方法更是已經被(新的 DOM 標準)廢棄了。

以下是更「現代」的做法,不過老樣子:兼容性會是問題:

var myEvent = new Event(‘myEventName’)

element.dispatchEvent(myEvent)

綁定回調是一樣的我就不重複了。另外「現代」的做法里觸發內建事件要用對應的介面,比如說:

var event = new MouseEvent(‘click’, {

‘view’: window,

‘bubbles’: true,

‘cancelable’: true

});

如何用JS來點擊按鈕

原理

用JS來點擊按鈕需要分2步,第一步是選中按鈕的元素,第二步是使用元素自帶的click函數。

例如接下來我將要演示的例子中,僅用

document.getElementById(“btn”).click()

一行就可以控制按鈕點擊。

其中document.getElementById(“btn”)是根究id獲取按鈕的元素,click()是使按鈕被點擊一次。

演示

這是我為此問題專門寫的在線演示頁面點擊按鈕演示頁面。

頁面結構如圖

首先點擊右下角打開控制台

然後輸入

document.getElementById(“btn”).click()

這行代碼

按回車運行代碼即可彈出一行提示,說明按鈕被點擊。你可以用滑鼠點擊一下按鈕,也是這個效果。

如何用原生js或jq觸發angularjs中ng-click綁定的事件

在 angular 項目開發中 不建議這麼弄,當然 如果有些引入的庫 只能這樣觸發的話,還是有辦法解決的。

首先在 控制器外側,也就是js 的最外側定義一個變數, 然後在當前控制器中 給該變數賦值為一個函數,該函數調用 控制器中 ng-click 之前綁定的回調函數 定義的這個函數使用onclick調用即可     比如:

button ng-click=”method_angular()”test/button  

button id=”btn” onclick=”method()”test/button

// 第一個按鈕 是使用ng-click執行

// 第二個按鈕是 使用onclick 執行

// 也可以使用jquery 給button 綁定事件執行

var method 

app.controller(“testRoute”,[“$scope”,function($scope){

    $scope.method_angular = function(){

        console.log(111)

    }

    method = function (){

        $scope.method_angular()

    }

    $(“#btn”).click(function(){

        $scope.method_angular()

    })

})

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/247532.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:21
下一篇 2024-12-12 13:21

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字元無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字元無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • 抖音外放親媽下葬事件的背後真相

    近期,一段抖音外放親媽下葬的視頻引發廣泛關注和熱議。不少人對這個事件感到震驚和憤怒,認為這種行為非常不尊重親人,觸犯了社會公德和家庭道德。但是,事情真相到底是什麼呢?我們有必要從多…

    編程 2025-04-28
  • JS圖片沿著SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿著SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • cc.director.on事件監聽器

    本文將從多個方面詳細介紹Cocos Creator中的cc.director.on事件監聽器。 一、cc.director.on的作用和用法 cc.director.on是Coco…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27

發表回復

登錄後才能評論