Javascript函数没有正确定义?

时间:2016-08-12 13:27:57

标签: javascript html ajax

我有一个简单的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并理解它是如何工作的。任何指针都会很棒!

1 个答案:

答案 0 :(得分:3)

您的代码中缺少字母

替换

<script type="text/javasript">

<script type="text/javascript">

使用type以外的text/javascript会阻止浏览器解析内容

奖金提示 - 请勿使用attr('innerHTML', ...),因为它在多个级别上都是错误的... element.innerHTML / $(element).html()(如果您使用jQuery)应该改为使用