通过下拉菜单激活Javascript命令
Javascript command activated via drop down Menu
我是使用Javascript的新手,我正在进行的项目需要帮助。我知道这个问题可能非常简单,但Javascript不是我的强项,我似乎无法独自找到我想要的东西。
我遇到的问题是,我需要根据下拉菜单中的选项更改3D模型中渲染的内容。我只是设法获得了下拉菜单来更改材质,但我需要弄清楚如何使用同一下拉菜单中的多个材质。
这是我现在拥有的:
HTML代码:
<div class="variant-option" id="js-mat-sel">
<div class="variant-option-title">Finish: </div>
<select data-variant-option-name="Finish">
<option value="none">Select Finish</option>
<option value="Silver" id="silver">Silver</option>
<option value="Brass" id="brass">Brass</option>
</select>
</div>
</div>
JS代码:
$( "#js-mat-sel" ).bind( "change", function matchange(){
lapi.applyMaterialToMeshByName( "Silver 1", "Group28884");
});
目前,当选择下拉菜单上的任何选项时,脚本将从基本材质更改为"银色1"。当我在下拉菜单上选择"黄铜"时,我希望它显示材料"金色1",当我从下拉菜单中选择"银色"时,只显示"银色1"。
此外,需要注意的是,我正在为3D渲染公司Lagoa使用现有API的衍生产品。
[编辑:]
所以,我知道我在这里做错了什么,我只是不知道如何正确地做我想做的事。
还应该注意的是,我从一个旧形式的代码中获得了"Gold 1"answers"Silver 1",该代码通过多个CSS按钮实现了我想要的功能。以下是有效的代码。然而,按钮又大又不方便,将来我需要用更多的材料重新创建此代码,因此下拉菜单更理想。这是原始代码:
HTML:
<div class="btn-large" id="js-material-btn-1">Gold</div>
<div class="btn-large" id="js-material-btn-2">Silver</div>
JS:
$( "#js-material-btn-1" ).bind( "click", function(){
lapi.applyMaterialToMeshByName( "Gold 1", "Group28884");
});
$( "#js-material-btn-2" ).bind( "click", function(){
lapi.applyMaterialToMeshByName( "Silver 1", "Group28884");
});
您将"Silver 1"硬编码为您提交的选项。
你希望从哪里获得"金牌1"?我在你的代码中看不到它。
Demantic提出了正确的答案,下面是它的样子。
例如:
<option value="Silver 1" id="silver">Silver</option>
<option value="Gold 1 " id="brass">Brass</option>
和你的js:
$( "#js-mat-sel > select" ).bind( "change", function matchange(){
lapi.applyMaterialToMeshByName( $(this).val(), "Group28884");
});
请注意,选项值包含您要发送的实际值。
编辑:您在div上使用.val(),但它只能用于input/form元素(即select元素)。您应该修改要绑定到select元素的更改事件,如下所示:http://jsfiddle.net/6YBpp/
您也可以更改选择器以选择该div的"select"子元素,我更新了答案以显示。。。无论哪种方式,作用域都是不正确的
- 通过下拉菜单激活Javascript命令
- 在类似chrome的浏览器中停止控制台javascript命令
- 从 WebSQL Javascript 命令返回一个变量
- 媒体查询打印无法通过 javascript 命令工作
- 已输入文本的文本字段的 Javascript 命令
- 无法将 JavaScript 命令粘贴到地址栏 (ie10) 中
- 将 JavaScript 命令添加到 Magento 中现有模板中的 buttom
- Javascript 命令串联问题
- 从 C# 应用程序在网站上执行 JavaScript 命令
- 这是什么javascript命令
- Javascript命令插入HTML
- 使用javascript命令播放/暂停音频文件
- 运行share/scripts/javascript命令行宏
- 在网页上,使用Excel宏更改下拉框的值/直接调用javascript命令
- 每X分钟运行一次JavaScript命令
- 如何使用javascript命令在jw播放器中获取源url
- javascript命令可以单独工作,但不能按顺序作为bookmarklet
- 使用通过EditText获得的变量向Webview发送javascript命令
- 无法通过HTTP API执行javascript命令
- 使用javascript命令随机表单选项