簡體   English   中英

將占位符文本添加到 plotly 小部件中的 selectize.js 下拉菜單

[英]Add placeholder text to selectize.js dropdown menu in plotly widget

我正在使用 plotly 和 R 創建交互式圖表。 它們中的每一個都包含一個selective.js 搜索小部件,它結合了一個<input>文本框和一個下拉菜單。 (參見此處的示例。)我告訴 plotly 通過將selectize = TRUE傳遞給plotly::highlight()添加搜索小部件。 我想在<input>字段中包含占位符文本——這可能嗎?

其他人詢問如何在加載頁面后更改 selectize.js 占位符值 發布的解決方案通常要求在一個頁面上添加一點 jquery,我很樂意這樣做。 但我無法讓解決方案發揮作用。 可能會出現問題,因為我無法控制如何將 selectize.js 或下拉菜單的任何其他方面合並到 HTML 文檔中。 (將那部分隱藏起來。)

這是演示問題的最小 R 代碼:

library(plotly)
data(mtcars)
myData <- highlight_key(mtcars, ~rownames(mtcars), group = "Enter name of car")
myFig <- plot_ly(myData, x = ~wt, y = ~mpg) 
myFig <- highlight(myFig, selectize = TRUE)
myFig

此代碼創建一個 HTML 頁面,其中包含一個selective.js 下拉菜單。 文本“輸入汽車名稱”出現在<input>文本框上方。 但我希望它出現框中——即作為占位符文本。 那可能嗎?

有可能的:

library(plotly)
data(mtcars)
myData <- highlight_key(mtcars, ~rownames(mtcars))
myFig <- plot_ly(myData, x = ~wt, y = ~mpg) 
myFig <- highlight(myFig, selectize = TRUE)
onRender(
  myFig,
  "function (el) {

    // Get selectized search widget
    s = $('select')[0].selectize;

    // Update placeholder 
    s.settings.placeholder = 'Enter name of car'; 
    s.updatePlaceholder();

    // Hide group name (random string) that would appear above placeholder
    $('#htmlwidget_container').find('label').css('display', 'none');
  }")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM