为什么jquery"改变“;事件在我的示例中不起作用
Why jquery "change" event does not work in my example?
当[name="tip"]
具有第一个值时,显示特定元素,否则将显示另一个元素。
这两个元素都具有display:none
属性。当我加载页面时,我会自动检查所需元素中的选择值和音量。
一切都很好,除非我尝试更改所选选项:什么都没发生。我将javascript onchange
和jquery .change()
都添加到该项中,但没有发生任何事情。你能告诉我为什么它在我的例子中不起作用吗?
<form id="fm-account-properties-tab" method="POST">
<table width="300px" style="margin-top:10px;" align="center" >
<tr>
<td align="left">
<select class="easyui-combobox" name="tip" style="width:200px;" class="easyui-validatebox" required="true" onchange="changeType();">
<option value="l1">l1</option>
<option value="l2">l2</option>
<script>
$(document).ready(function(){
$('[name="tip"]').val('<?php echo $a['tip'];?>');
});
</script>
</select>
</td>
</tr>
<tr id="l1" style="display:none">
<td align="left">
<select class="easyui-combobox" name="l1" style="width:200px;" class="easyui-validatebox" required="true">
</select>
</td>
</tr>
<tr id="l2" style="display:none">
<td align="left">
<select class="easyui-combobox" name="l2" style="width:200px;" class="easyui-validatebox">
</select>
</td>
</tr>
</table>
</form>
<script>
function changeType()
{
if($('[name="tip"]').val()=='l1')
{
$('#l1').fadeIn();
$('#l2').hide();
}
else
{
$('#l2').fadeIn();
$('#l1').hide();
}
}
$(document).ready( function () {
changeType();
$('[name="tip"]').change(function(){ alert('1');});//it never alerts me
});
将.on
用于较新的jQuery版本(jQuery>1.7.x参考)
function changeType() {
if ($('[name="tip"]').val() == '___') {
$('#1').fadeIn();
$('#2').hide();
} else {
$('#2').fadeIn();
$('#1').hide();
}
}
$(document).ready(function () {
changeType();
$('select[name="tip"]').on('change', function() {
changeType();
});
});
您的select中有一个double-class属性。
这是一个工作样品http://jsfiddle.net/tvhKH/
您可能应该使用js error event
来找出该代码中的错误。例如<script> try
{....all your codes here...}
catch(err)
{alert("THE ERRor" + err.message);} </script>
。这些代码将提醒您的错误及其发生的确切点。祝你好运
首先,您应该尝试添加
console.log("It works");
或
alert("It works")
在你的方法中,这样你就知道它是否被实际调用了。
那么我认为问题可能来自于FadeIn()只适用于css{display:none}和可见性不同于"hidden"的元素,所以你确定你的元素是吗?如有疑问,您可以更换
.fadeIn();
通过
.css('visibility','visible').hide().fadeIn(); // hide() does the same as display: none
然后请告诉我,如果你有更多的信息后,做。
相关文章:
- 我的AngularJS表达式没有'不起作用
- 我的javascript for循环不起作用
- 我的下拉菜单中的链接不起作用
- 自动建议在我的搜索引擎上不起作用
- 为什么我的JavaScript堆栈排序函数不起作用
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- 我的jquery代码不起作用.为什么?
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- 为什么我的While循环不起作用
- css animate fadeIn'对我来说不起作用
- 通过body onload使用json_encode发送数组对我来说不起作用
- 在页面上放置一个随机生成器脚本 - 它可以工作.添加另一个具有不同名称的 - 不起作用
- javascript代码I'我使用不起作用
- 在同一个按钮上调用多个函数对我来说不起作用(ajax)
- 倒数第二的第n个孩子没有'对我来说不起作用
- Javascript -检查页面加载时是否存在cookie对我来说不起作用
- ng在nghide上制作动画;对我来说不起作用
- 使用ng repeat访问嵌套json'对我来说不起作用
- orderBy descending order dos'对我来说不起作用
- 过滤器angularjs不'对我来说不起作用