我有一个简单的javascript代码,使用AJAX调用另一个页面来更新我的数据库记录。我在链接中使用onclick
传递我的变量并调用该函数。在调试中,我得到常见错误"函数addFeatured未定义"。
我在StackOverflow上阅读了很多帖子,我发现我发现的最常见的问题是,虽然定义了函数本身,但却无法全局访问。我对javascript很新,但仍然不完全明白如何判断我的特定脚本是否是全局的。我已经看过幻灯片中的其他脚本和我的灯箱效果中的一个脚本,而且我(我)看起来应该是什么,但是,我的灯箱没有使用onclick处理程序。
从我到目前为止所读到的内容,我的理解是,在标记中使用onclick不是一个好习惯。这一般是正确的吗?如果是这样,那么完成我想要做的事情的正确方法是什么?
这是我页面中的代码块(就像我在IDE中编写的那样):
<li><a onclick="addFeatured(<?php echo $r['id']; ?>)"><i class="icon-trash"> </i> Add to Featured</a></li>
<script type="text/javasript">
function addFeatured(itemId)
{
$.ajax({
'url': 'addFeatured.php',
'type': 'GET',
'dataType': 'json',
'data': {itemid: itemId},
'success': function(data)
{
if(data.status)
{
if(data.added)
{
$("span#success"+itemId).attr("innerHTML","Added Dog to Featured Categories.");
}
else
{
$("span#success"+itemId).attr("innerHTML","This item is already on your list");
}
}
},
'beforeSend': function()
{
$("span#success"+itemId).attr("innerHTML","Adding Dog to Featured...");
},
'error': function(data)
{
// this is what happens if the request fails.
$("span#success"+itemId).attr("innerHTML","An error occureed");
}
});
}
</script>
我真的有兴趣学习javascript并理解它是如何工作的。任何指针都会很棒!
答案 0 :(得分:3)
您的代码中缺少字母
替换
<script type="text/javasript">
与
<script type="text/javascript">
使用type
以外的text/javascript
会阻止浏览器解析内容
奖金提示 - 请勿使用attr('innerHTML', ...)
,因为它在多个级别上都是错误的... element.innerHTML
/ $(element).html()
(如果您使用jQuery)应该改为使用