未捕获的ReferenceError:未定义onclick

时间:2016-05-01 08:40:19

标签: javascript jquery

on onclick我得到了Uncaught ReferenceError: akkiTooltip is not defined 检查我正在使用的代码:

$(document).ready(function () {
    function akkiTooltip() {
        function applyTooltip(element, word) {
            var tooltipText = $('' + element + ' label').data('tooltip');
            var newContent = $('' + element + ' label').html().replace(word, '<span data-tooltip="' + tooltipText + '">' + word + '</span>');
            $('' + element + ' label').removeAttr('data-tooltip');
            return $('' + element + ' label').html(newContent);
        }
        applyTooltip('#question_307', 'Some text');
    }
});

这是来自我申请onclick的另一个js文件:

$(button)
    .text(this.answers[a].title)
    .attr('type', 'button')
    .attr('class', 'btn')
    .attr('onclick', 'quiz._makeSelection(\'answer_' + this.answers[a].id + '\', ' + go + ', ' + this.answers[a].skipToSection + '); akkiTooltip();');

akkiTooltip函数移到$(document).ready函数之后,我收到此错误

Uncaught TypeError: Cannot read property 'replace' of undefined

3 个答案:

答案 0 :(得分:3)

akkitooltip函数的定义移到document.ready函数之外。它无法从那里访问。

答案 1 :(得分:0)

  

Cannot read property 'replace' of undefined

查看您使用的位置.replace

$('' + element + ' label').html().replace(word, '...');

因此,$('' + element + ' label').html()不是您所期望的,即$('' + element + ' label')未找到任何元素,因此.html()未返回字符串

检查选择器#question_307 label描述的元素是否存在

当我尝试重现此错误时,我实际上获得了null而不是undefined,因此它可能是您代码的另一部分

答案 2 :(得分:0)

也许你应该检查一下你是否正确:

1.在html和jsp网页中:

<script src=""></script>

2.在xhtml网页中:

<script src="" />

3.如果你的js代码(功能代码)与html在同一个网页上,你可以使用:

<script> {your js code} </script>

默认脚本类型为“test / javascript”