触发下拉列表上的单击事件
Trigger click event on a dropdown list
我有两个下拉列表,第一个如下:
<select name="country_id" id="country_id" tabindex="1" onchange="changeLang(this);">
{section name=jj loop=$jezyki}
<option value="{$jezyki[jj].code}" {if $LANG.lang == $jezyki[jj].code} selected {/if}>{$jezyki[jj].name}</option>
{/section}
</select>
第二个是从谷歌服务器下载的,它是一个谷歌翻译小部件。我需要的是当用户从第一个下拉菜单中单击选项时,脚本应该改变小部件下拉列表的值并触发单击函数来实际翻译页面。
function changeLang(someth){
var nLang = someth.value;
//$(".goog-te-combo option").val(someth.value);
// $(".goog-te-combo").trigger('click');
$(".goog-te-combo option[value="+nLang+"]").prop('selected',true).click();
}
上面的代码段改变了该值。例如,我可以看到选中了英文,但它仍然不翻译
你需要调度onchange事件:
function changeLang(someth) {
var nLang = someth.value,
evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
$('.goog-te-combo').val(nLang)[0].dispatchEvent(evt);
}
这有帮助吗?
var $el = $(".goog-te-combo option[value=" + nLang + "]");
$el.prop('selected',true);
$el.trigger("click");
关于.trigger()的更多信息。
前几天我也做过同样的事情。简单的解决方案,因为你正在使用jQuery:
<select id="selectId"></select>
<script type="text/javascript">
/*for an action event upon a change i did this*/
$('#first-dropdown-id').change(function(){
//your code
/*nesting the click trigger function for it to get triggered*/
$('#widget-dropwdown-id').trigger( "click" );
}
});
</script>
相关文章:
- 将单击事件添加到数据表
- 将单击事件添加到附加的项目中
- 在IE8中不起作用的元素上触发单击事件
- 链接上的IE10 jquery句柄单击事件不起作用
- 如何使用纯 JavaScript 在所有浏览器中区分左/右/中键单击事件
- 如何在master中调用细节网格作为单击事件
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 如何隐藏按钮单击事件上的占位符
- 复选框,然后单击事件处理
- 如何使用for循环添加所有按钮'单击事件
- 手柄'img'单击事件并插入'alt'使用jQuery将属性转换为文本框
- 覆盖单击事件不起作用
- 单击事件打开两个弹出菜单
- 单击事件不起作用
- 从其他元素上的单击事件访问image src属性
- 单击事件中的ajax请求后重定向
- 如何缩放地图框传单中的标记单击事件
- 在没有焦点的情况下捕获画布上的第一次单击事件
- 通过单击事件识别画布上的对象
- 如何将单击事件添加到JQuery中动态添加的元素中