附加<;选项>;在jquery的select tag on click功能中工作不正常

附加<;选项>;在jquery的select tag on click功能中工作不正常,jquery,html,drop-down-menu,Jquery,Html,Drop Down Menu,下拉列表会被填充,但当我第一次单击select标记时,它不会显示所有列表,而是显示滚动列表的按钮,第二次单击时,它会显示完整的列表。我附加的第一次点击和第二次点击行为和代码示例的图像 由于您几乎没有提供合适的示例,如果您使用的是jQuery UI之类的框架,则很难了解HTML的设置方式 基本上,您需要使用.preventDefault()然后返回true组合,以确保在显示之前AJAX已经完成。本例不模拟AJAX调用,但构建菜单确实需要时间 例如: HTML <div> <

下拉列表会被填充,但当我第一次单击select标记时,它不会显示所有列表,而是显示滚动列表的按钮,第二次单击时,它会显示完整的列表。我附加的第一次点击和第二次点击行为和代码示例的图像


由于您几乎没有提供合适的示例,如果您使用的是jQuery UI之类的框架,则很难了解HTML的设置方式

基本上,您需要使用
.preventDefault()
然后
返回true
组合,以确保在显示
之前AJAX已经完成。本例不模拟AJAX调用,但构建菜单确实需要时间

例如:

HTML

<div>
  <label for="pro_id">Select Product</label>
  <select name="pro_id" id="pro_id">
    <option>Select Product</option>
  </select>
  <button>Search</button>
</div>

精选产品
精选产品
搜寻
JavaScript

$(function() {
  var i = 0,
    r = Math.floor(Math.random() * 1000),
    opts = [];
  for (i; i <= r; i++) {
    opts.push({
      id: i,
      name: "Product Name " + i
    });
  }
  $("#pro_id").click(function(e) {
    e.preventDefault();
    $.ajax({
      url: "/echo/json/",
      dataType: "JSON",
      data: {
        json: JSON.stringify(opts)
      },
      type: "POST",
      success: function(data) {
        $.each(data, function(index, row) {
          $("#pro_id").append("<option value='" + row.id + "'>" + row.name + "</option>");
        });
      }
    });
    return true;
  });
});
$(函数(){
var i=0,
r=数学地板(数学随机()*1000),
opts=[];

对于(i;我可以帮你发布相关的代码片段吗?在OP中发布一个图像不会有帮助,因此人们会确定问题所在,使用
在OP或演示中发布一些代码,看看如何创建一个,如果
是通过AJAX填充的,那么加载它可能需要一些时间。添加一些等待它准备就绪的时间可能会有所帮助。正如之前的comm首先,我们需要看一个代码示例。请查看:是的,我正在使用ajax添加数据,您能告诉我如何添加延迟吗?另外,您可以通过在CSS中创建eclipse而不是在脚本中创建eclipse来节省一些时间。