第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

動態(tài)添加按鈕 d3.js

動態(tài)添加按鈕 d3.js

溫溫醬 2022-01-13 17:31:09
這似乎是一個非常微不足道的問題,但我一生都找不到令人滿意的答案。如何添加具有綁定功能的按鈕而不將其硬編碼到頁面中或?qū)Α皁nclick”屬性進行字符串化?IEsome_div_selection.append("button").text("+").on("click", console.log("You clicked me"));相反,我看到人們這樣做的唯一方法是some_div_selection.append("button").attr("onclick", "foobar()").text("+")這看起來非常笨重和脆弱。我需要給按鈕一些數(shù)據(jù)還是什么?
查看完整描述

2 回答

?
POPMUISE

TA貢獻1765條經(jīng)驗 獲得超5個贊

我是一名 D3 程序員,我必須說,在這些年里,我從未見過一個使用您聲稱是您唯一見過的方法的 D3 代碼,即設置onclick屬性:


selection.attr("onclick", "foo()")

它確實有效,但這不是慣用的 D3。在 D3 中,我們使用該on方法。但是,您的第一個片段的問題在于它立即調(diào)用該函數(shù):


d3.select("body")

  .append("button")

  .html("Click me")

  .on("click", console.log("you clicked me"));

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>


可以看到控制臺顯示“you clicked me”沒有任何點擊。所以,為了讓它起作用,我們不應該調(diào)用這個函數(shù)。有趣的是,console.log接受 3 個參數(shù),看看如果我們不調(diào)用會發(fā)生什么console.log:


d3.select("body")

  .append("button")

  .html("Click me")

  .on("click", console.log);

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>


現(xiàn)在console.log,當您單擊按鈕時可以使用,因為您將它作為函數(shù)引用傳遞。但是,第一個值是undefined因為您沒有將任何字符串傳遞給console.log.


話雖如此,你想要的是:


d3.select("body")

  .append("button")

  .html("Click me")

  .on("click", () => {

    console.log("you clicked me")

  });

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>


現(xiàn)在您正在向click事件傳遞一個適當?shù)暮瘮?shù),當您單擊時將調(diào)用該函數(shù)。

查看完整回答
反對 回復 2022-01-13
?
慕運維8079593

TA貢獻1876條經(jīng)驗 獲得超5個贊

當您:

some_div_selection.append("button").text("+").on("click", function(){console.log("You clicked me")});



查看完整回答
反對 回復 2022-01-13
  • 2 回答
  • 0 關注
  • 409 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號