【发布时间】:2016-11-07 19:06:08
【问题描述】:
通过 AJAX 动态加载
这里是头部
<head>
<link rel="stylesheet" type="text/css" href="templates/main.css">
<link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/main.js"></script>
</head>
$('.vp_names').on("change", "input[name='vp_names']", function(event) {
alert('got here'); // NEVER FIRES
})
<div class='vp_names'>
<input id="vp_names_1" checked name='vp_names' value='1' type='radio'/>
<label class="drinkcard-cc label_card male" for="vp_names_1">George</label>
<input id="vp_names_2" name='vp_names' value='2' type='radio'/>
<label class="drinkcard-cc label_card male" for="vp_names_2">Jungle</label>
</div>
上述代码的变体适用于我在同一页面/加载上的所有其他输入/按钮。范围输入工作,其他收音机/复选框工作。我试过改变/点击。我试过 :radio 和没有。我试过更改名称、更改选择器、更改父选择器,但没有任何东西可以触发单选按钮。
** 更新**
虽然不知道为什么它不工作,因为它在代码的其他部分以这种方式工作,但将其更改为以下确实有效。所以如果你有类似的问题,试试这个。
$('#view_profile').on("change", ".vp_names", function(event) {
alert('got here');
}
和
<input class='vp_names' id="vp_names_1" checked name='vp_names' value='1' type='radio'/>
<label class="drinkcard-cc label_card male" for="vp_names_1">John</label>
Removed class from parent div
我仍然使用 view_profile 的“包”,这是通过 ajax 附加到动态加载的内容的方法。
** 解决方案**
似乎是 Rob 建议的 JS 缓存问题。
【问题讨论】:
-
有什么错误吗?页面上有 jQuery 吗?
-
$ is not defined表示页面上没有 jQuery。 -
没有错误,一切都已定义