我的意图是在单击隐藏按钮后立即隐藏div元素。但是当我点击隐藏按钮时,浏览器保持静音。
这是我的代码
$.fn.slideFadeToggle = function(easing, callback) { return this.animate({ opacity: 'toggle', height: 'toggle' }, "slow", easing, callback); }; $("#hid").click(function(){ alert('here'); $("#result").slideFadeToggle(); });
hid是按钮的id,单击该按钮实际上应该隐藏div。点击功能内的警报也不起作用。
result是要隐藏的div的id。任何想法?
答案 0 :(得分:2)
点击功能内的警报也不起作用。
这表明,当您执行$("#hid").click(...
时,DOM中尚不存在ID为hid
的元素。在创建DOM元素之前,您无法访问它们。
确保在尝试访问它们之前创建它们的三种方法是使用jQuery ready
函数,以确保在元素之后加载脚本代码有问题,或使用jQuery的live
功能。
因此,例如,这将失败:
<html>
...
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$("#hid").click(...);
</script>
</head>
<body>
<div id='hid'>...</div>
...
但这可行(通过ready
的快捷方式):
<html>
...
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
jQuery(function($) {
$("#hid").click(...);
});
</script>
</head>
<body>
<div id='hid'>...</div>
...
就像这样(因为脚本位于之后标记中的元素):
<html>
...
<script type='text/javascript' src='jquery.js'></script>
</head>
<body>
<div id='hid'>...</div>
<script type='text/javascript'>
$("#hid").click(...);
</script>
...
......后者是谷歌团队的Closure recommend;同样地,YUI team recommend将您的脚本放在结束body
标记之前,这也是同样的事情。
这将有效(通过live
):
<html>
...
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$("#hid").live('click', ...);
</script>
</head>
<body>
<div id='hid'>...</div>
...
答案 1 :(得分:0)
嗯,它适用于chrome:jsfiddle
你在该代码之前导入jquery吗?