Javascript 选择选择元素的第一个选项时触发事件

Javascript 选择选择元素的第一个选项时触发事件,javascript,jquery,html,select,window,Javascript,Jquery,Html,Select,Window,我的用法很简单,我的页面上有一个简单的select元素 <select id="project-dropdown"> <option data-url="/constructions/6">Test 1</option> <option data-url="/constructions/7">Test 2</option> </select> 除了我想转到第一个选项外,此事件工作正常。页面以选择的第一个元素

我的用法很简单,我的页面上有一个简单的select元素

<select id="project-dropdown">
    <option data-url="/constructions/6">Test 1</option>
    <option data-url="/constructions/7">Test 2</option>
</select>
除了我想转到第一个选项外,此事件工作正常。页面以选择的第一个元素开始,因此我无法在其上触发已更改的事件


有什么建议吗?

像这样的小技巧对你有用吗

HTML部分:

<select id="project-dropdown">
    <option data-url="#">Select a value</option>
    <option data-url="/constructions/6">Test 1</option>
    <option data-url="/constructions/7">Test 2</option>
</select>
只需调用$'project-dropdown'。更改;更改后绑定。像这样:

$('#project-dropdown').change(function() {
    var url = $(this).find(':selected').data('url');
    window.location = url;
});

$('#project-dropdown').change();

.

我建议您将HTML更改为:

<select id="project-dropdown" size=2>
    <option data-url="/constructions/6">Test 1</option>
    <option data-url="/constructions/7">Test 2</option>
</select>
通过设置size=2,您将覆盖默认值1,这将导致列表显示为单行,并预先选择初始选项,其副作用是单击该选项不会触发更改事件


将大小设置为2或更多将导致选项显示在大小为行的列表中,没有初始选择,因此用户可以选择任何选项,包括第一个选项。

是否尝试了$'project-dropdown'。loadfunction{var url=$this.find':selected'.data'url';window.location=url;};您希望用户如何知道如何选择第一个?也许考虑一个请选择占位符或一个按钮去。要么添加一个占位符作为默认选项或只是触发改变事件,如:如果你不希望窗口位置改变,如果他们选择的选项是相同的当前URL,那么为什么不只是从Wiel.Loosi.HeRF获取当前的URL路径;看看它是否与数据url相同,然后跳过窗口。location=url。@stevemarvell:你完全正确。我需要站起来舒展一下腿,下午晚些时候我的脑子都快不行了对我来说,这个JSFIDLE在它的输出面板Windows64Pro中没有显示任何东西,FF57.064位和Chrome版本63.0.3239.132官方版本64位。
$('#project-dropdown').change(function() {
    var url = $(this).find(':selected').data('url');
    window.location = url;
});

$('#project-dropdown').change();
<select id="project-dropdown" size=2>
    <option data-url="/constructions/6">Test 1</option>
    <option data-url="/constructions/7">Test 2</option>
</select>