Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改函数前的默认值_Javascript_Jquery - Fatal编程技术网

Javascript 更改函数前的默认值

Javascript 更改函数前的默认值,javascript,jquery,Javascript,Jquery,我有一个包含值的简单下拉列表。更改时,值将传递给变量place place值被传递给div,div从api加载数据。在我选择其中一个值后,它会工作,但我的初始值为空 在单击选择列表之前,如何存储默认值 <select name="places"> <option value="135264023">New York</option> <option value="116721348">Los Angeles</option>

我有一个包含值的简单下拉列表。更改时,值将传递给变量
place

place
值被传递给div,div从api加载数据。在我选择其中一个值后,它会工作,但我的初始值为空

在单击选择列表之前,如何存储默认值

<select name="places">
  <option value="135264023">New York</option>
  <option value="116721348">Los Angeles</option>
  <option value="104279908">Dubai</option>
</select>

<div id="widget"></div>

<script>
$('select').change(function() {
  var place = $(this).val();
  console.log(place);
  // This call have to happen after div and <script> tag.
  widgetOptions({
    element: 'widget',
    placeId: place,
  });
});
</script>

纽约
洛杉矶
迪拜
$('select').change(函数(){
var place=$(this.val();
控制台日志(位置);
//此调用必须在div和tag之后进行。
widgetOptions({
元素:“小部件”,
placeId:place,
});
});

您可以通过添加
selected
布尔属性将选项设置为默认值,但我猜您真正的问题是如何在开始时触发加载信息

添加所选的
(尽管很可能已经默认为第一个):

我不喜欢使用假事件触发处理程序,但我可以看到它的魅力。这在很大程度上是一种风格选择。

var-place=null;
$('select')。单击(函数(){
if(place==null){
place=$(this.val();
}
});
$('select').change(函数(){
//place=$(this.val();
控制台日志(位置);
//此调用必须在div和tag之后进行。
widgetOptions({
元素:“小部件”,
placeId:place,
});
});

纽约
洛杉矶
迪拜

纽约
文档。querySelector('[name=“places”]')。selectedIndex=0你的可能复制品读懂了我的心思,我的问题有点迷茫。我在寻找如何在不点击的情况下触发第一个值。这很有魅力!我很喜欢你在回答中提供的信息:)+1
<select name="places">
  <option value="135264023" selected>New York</option><!-- Note change -->
  <option value="116721348">Los Angeles</option>
  <option value="104279908">Dubai</option>
</select>
var sel = $("select"); // You probably want this to be more specific
setupPlace(sel.val());
sel.change(function() {
  setupPlace($(this).val());
});
function setupPlace(place) {
  console.log(place);
  // This call have to happen after div and <script> tag.
  widgetOptions({
    element: 'widget',
    placeId: place,
  });
}
$('select').change(function() {
  var place = $(this).val();
  console.log(place);
  // This call have to happen after div and <script> tag.
  widgetOptions({
    element: 'widget',
    placeId: place,
  });
}).trigger("change"); // <== Only change is here