以下是我的观点摘录
<ul id="ScreenNav">
<li id="1" class="Active"> One </li>
<li id="2"> Two </li>
<li id="3"> Three </li>
</ul>
我有一些脚本根据所选的列表元素执行ajax调用。
$('#ScreenNav').on('click', 'li', function () {
$(this).siblings().removeClass('active');
$(this).addClass('active');
var index = $(this).attr('id');
//ajax call to a controller action
});
不知何故,对控制器操作的ajax调用正在发生,而之前的语句没有任何影响。在调试时我发现语句$('this').attr('id')
抛出一个错误,说'对象不支持属性或方法'attr''。
我试图摆弄,但面对同样的问题。 http://jsfiddle.net/29KR9/1/。 $('this')
未被正确识别?在那种情况下,ajax调用如何按预期进行?代码有什么问题?
编辑: 我很抱歉!小提琴按预期工作。正如@Anton指出的那样,我没有包含jQuery。但是我仍然不明白为什么我的添加和删除类不起作用。小提琴和我的代码之间的区别在于,在我的代码中,脚本被绑定到动态html的列表元素。
答案 0 :(得分:0)
请在$(document).ready()中使用此代码;像这样
$(document).ready(function () {
$('#ScreenNav').on('click', 'li', function () {
$(this).siblings().removeClass('active');
$(this).addClass('active');
});
});