亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 onclick = function() 在文檔就緒中不起作用?

為什么 onclick = function() 在文檔就緒中不起作用?

縹緲止盈 2023-12-04 17:15:09
查看何時應該使用 jQuery 的 document.ready 函數?表單提交按鈕 onclick 不會調用我的 JS 函數,給人一種在代碼中使用應該沒有壞處的感覺$document.ready(function(){}),而是有好處的。但是,當我在按鈕的方法中輸入函數時onclick,語句內的函數ready()不會被執行。為什么這樣?例如,此代碼不會發出警報$(document).ready(function(){  function f(){  alert("alert");  }})/*function f(){  alert("alert");  } */<button onclick="f()">My Button</button>我知道如果我使用 jQuery 選擇器來使其工作,它就會 ( $("button").click(f))。但為什么這個方法會失敗呢?
查看完整描述

3 回答

?
米脂

TA貢獻1836條經驗 獲得超3個贊

這是一個范圍問題 - 在函數內部聲明的函數在外部函數之外無法訪問,就像在函數內部聲明的變量一樣:


(function(){

    var a = 'hello';

    function b () {

        console.log(a);

    }

})();


a;   // syntax error - a is undefined

b(); // syntax error - b is undefined

您可以通過將函數分配給全局變量來使其工作:


var f;


$(document).ready(function(){

  f = function(){

    alert("alert");

  }

})


查看完整回答
反對 回復 2023-12-04
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

每當你聲明一個函數時,你就會創建一個作用域。在該范圍內聲明的任何內容都無法在該范圍之外訪問。


$(document).ready(function(){

  // f is only accessible to other code declared in this function.

  function f(){

    alert("alert");

  }

})

使用 jQuery 執行此操作的推薦方法是在 jQuery 就緒函數中分配單擊處理函數。


HTML:


<button id="my-button-id">My Button</button>    

JavaScript:


$(document).ready(function(){

  // f is only accessible to other code declared in this function.

  function f(){

    alert("alert");

  }


  // Assign onclick here

  $('#my-button-id').on('click', f)

})


查看完整回答
反對 回復 2023-12-04
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

$(document).ready() 在所有 html 加載完成后被調用。由于您在 html 中調用“f()”函數,因此它會在“$(document).ready()”中的任何內容運行之前調用“f()”,這意味著“f()”沒有定義。

現在通常甚至不使用“$(document).ready()”,只要您在所有 html 末尾加載該 jQuery 即可避免長時間加載。這將允許您從 html 中調用“f()”,并且在 html 之后仍然加載 jQuery 的其余部分。


查看完整回答
反對 回復 2023-12-04
  • 3 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號