为什么我的事件处理程序与jQuery绑定而没有启动
Why is my event handler bound with jQuery not firing?
有什么想法为什么这在我的php文档中不起作用吗?当我在jsfiddle上测试这个时,一切都很好。
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$("a").click(function() {
$("div.info").hide();
$("div." + this.className).show();
});
</script>
</head>
<body>
<div class="shipping-container">
<a href="#" class="ups">Show UPS info</a>
<a href="#" class="fedex">Show Fedex info</a>
<div class="ups info" style="display:none">the info for ups</div>
<div class="fedex info" style="display:none">Who let the dogs out</div>
</div>
</body>
您错过了文档就绪处理程序,请尝试以下操作:
<script type="text/javascript">
$(function() {
$("a").click(function() {
$("div.info").hide();
$("div." + this.className).show();
});
});
</script>
或者,将script
标记保持原样,但将其放在文档末尾的</body>
标记之前。
您应该确保您的JQuery代码只有在DOM完全加载后才加载,方法是:
$(document).ready(function() {
$("a").click(function() {
$("div.info").hide();
$("div." + this.className).show();
});
});
您正在运行链接元素之前的脚本。
在jsfiddle中,代码默认放置在加载文档后运行的事件中。使用ready
事件在代码中执行此操作:
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function() {
$("div.info").hide();
$("div." + this.className).show();
});
});
</script>
我认为你应该在你的头中这样做:
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
$("div.info").hide();
$("div." + this.className).show();
});
</script>
这将确保在尝试附加任何事件处理程序之前加载所有DOM对象(尤其是a元素)。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- AngularJS指令只识别双向绑定类型
- Telerik rad组合框多列数据绑定
- 对API数据使用声明性绑定
- 安卓键盘未打开绑定到触摸启动的输入标签
- jQuery - 单击事件绑定并在页面加载时启动
- 将点击事件绑定到 jqzoom 以启动 Fancybox
- 绑定到触摸启动事件,导致自动对焦集中在Mobile Safari中的任何单击上
- jQuery.bind绑定的函数未启动
- KnockoutJs提交绑定启动了一个有限循环
- 为什么我的事件处理程序与jQuery绑定而没有启动
- 如何在启动任务后直接解绑绑定的按钮