如何确保在html页面上加载所有元素,然后我们对CSS中的元素执行一些修改?

时间:2015-11-30 22:02:57

标签: javascript jquery css esri arcgis-js-api

这将是以前多次询问的一般性问题。我问这个的原因是因为我确实在jquery中使用了现成的回调,并且它没有修改我的元素“search_input”的占位符

$( document ).ready(function() {
  $("#search_input").attr('placeholder','New data that will be shown');
}

这是因为CSS在加载之前应用于id“search_input”。我已经尝试了一切,但似乎没有任何工作。

有什么想法吗?

注意:我正在使用ERSI地图处理ArcGIS Javascript到应用程序。我通过javascript加载搜索栏时会出现问题,这需要时间来加载搜索栏。但是我的html页面在加载此脚本之前调用on ready ready回调。因此,我面对这个问题。我无法解决这个问题,任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:2)

我在我的代码中修复了这个,

search.on("load", function () {
//push all the sources
  var sources = search.sources;
  sources.push(addSources("ABC","ABC","eg : ABC",1));
  sources.push(addSources("XYZ","XYZ","eg: XYZ",1));
  search.set("sources", sources);

  //Adding the placeholder here, as the search bar is loaded with sources only at this point of the execution
  //Hence, we can modify the CSS only after this point.
  $("#search_input").attr('placeholder','Search Tree Data');
  });

您无法在代码中的任何位置修改CSS。只有在搜索栏加载了所有源时,才需要修改它。我尝试添加$ document.ready(function(){});或者在身体末端添加css。没有任何效果,因为我们在这里使用不同的JavaScript库/工具包 - Dojo。因此,我们只能根据数据的加载方式或在Dojo中调用回调的方式执行操作。而不是普通的HTML javascript到jQuery。