【问题标题】:Changing Text into dropdown将文本更改为下拉菜单
【发布时间】:2012-08-01 21:04:17
【问题描述】:

我有一个很大的价值观。起初,每个值都是一个下拉列表。但加载速度非常慢(+15 秒)。 所以我想在我的网格(一个常规表格)中使用文本,并在双击文本时使用下拉列表。 这可能吗 ? 另外,是否可以使用 Telerik 下拉菜单?

这是一个示例:包含颜色的网格(例如:蓝色、蓝色、红色、黄色......)。 双击单词时,下拉菜单将替换所选文本。下拉列表将包含所有可用的颜色:蓝色、红色、黄色。 After that, when the value is selected, the drop down would disapear and the text will display the new value.

到目前为止,我得到了这个:

$(function () {
    $('.colorGrid').dblclick(function () {
         debugger;
        $(this).html("<select class=\"resultMenu\" id=\"resultMenuID\" size=\"1\"></select>");
        $(this).children("select").append('<option value=1>Black</option>');
        $(this).children("select").append('<option value=2>Red</option>');
        $(this).children("select").append('<option value=3>Blue</option>');
        $(this).children("select").append('<option value=4>Yellow</option>');
    });
    $('#resultMenuID').change(function (event) {
        debugger;
        $(this).html("<td>test</td>");
    });
});

我已经接近我的目标了。现在我需要将选择的结果放回 td 标记中,选择必须消失!从不调用更改选择功能。有谁知道为什么?

【问题讨论】:

  • 您现在可以向我们展示您的 html 和 javascript 吗?
  • 基本思想是将潜在下拉列表的所有“东西”放入一个块中并将其隐藏并将 onClick 添加到每个这样的块中,这会将值从隐藏变为可见。然后,如果您想减少加载时间,只需在用户单击块时使块加载适当的值
  • MrOBrian,我今天才发布这个问题?!?!?!另外,我不明白为什么要发送 javascript 示例,答案应该很笼统。你为什么要看我的其他问题?我的其他问题没有得到任何好的答案......所以??

标签: javascript jquery drop-down-menu


【解决方案1】:

如果需要 +15 秒,那么你肯定要选择 AJAXhardcoding the dropdownvalues in javascript strings.

正如 MrOBrian 所说,我不能仅根据您的一两行问题为您提供代码。您必须上传现有的问题代码才能从此处获得解决方案。不过我可以给你一个想法。

说这是你的色块

<div id="colour-block-list">
    <div id="red-block" class="colour-block">
    Red
    </div>
</div>

您必须添加一个 onclick 处理程序。

$(".colour-block").click(function(){

  //call your ajax or get values from hard coded javascript string
   $(this).html("<select></select>");
   $(this).children("select").append(list_of_options);


});

【讨论】:

  • 嗨阿夫林。这正是我一直在寻找的。我没有提供代码,因为解释一切需要时间。颜色示例与我想要的相似。还有一件事,在您的示例中,您将如何使用 Telerik 下拉菜单而不是常规选择?另外,当用户选择他的值时,你会如何放回文本格式?谢谢
  • 我已经接近我的目标了。现在我需要将select的结果放回td中,select必须消失!
  • @alex - 你可以做一件事。 $(".colour-block").children("select").val() 会得到你的价值。将此添加到 div。然后为所有块隐藏它。在 click() 处理程序上执行此操作。这样,在您服务之前点击一下。所有选择块的值将被放入 td.然后隐藏 td。
猜你喜欢
  • 2014-05-27
  • 1970-01-01
  • 2011-05-27
  • 2020-10-21
  • 2019-09-22
  • 2018-09-16
  • 1970-01-01
  • 2015-06-23
  • 2012-09-06
相关资源
最近更新 更多