以下是我如何调用我的JS:
<a href="javascript:void(0)" class="FCChatControl" onClick="toggleChatControl('cwa#item.OwnerID#')"></a>
“#item.OwnerID#”是包含ID的循环中的变量。所以我想要改变CSS的元素应该是:“cwa123”或者id的其他一些数字......
这是我的JS:
$(document).ready(function() {
function toggleChatControl(id){
var wnd = document.getElementById(id);
if (wnd.style.marginBottom == '-1px') {
wnd.style.marginBottom = '-236px';
} else {
wnd.style.marginBottom = '-1px';
}
}
});
我没有线索,它给了我“未定义”错误......
答案 0 :(得分:4)
超出范围,删除文档就绪包装
function toggleChatControl(id){
var wnd = document.getElementById(id);
if (wnd.style.marginBottom == '-1px') {
wnd.style.marginBottom = '-236px';
} else {
wnd.style.marginBottom = '-1px';
}
}
每个函数都创建一个新范围,全局范围是window
,这就是用于内联javascript的范围。
在$(document).ready(function() { ... });
内部,范围被更改(到document
),因此该函数超出了内联处理程序的范围。
更好的方法是使用适当的事件处理程序
$('.FCChatControl').on('click', function() {
toggleChatControl('cwa#item.OwnerID#');
});