You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jSignature报错:Uncaught TypeError: $(...).jSignature is not a function求助

解决jSignature "is not a function" 错误的方案

看起来你遇到的核心问题是jSignature插件没有被正确加载或初始化,导致jQuery找不到这个方法。咱们一步步排查解决:

1. 必须先引入jSignature插件文件

你只提到了引入jQuery,但jSignature是独立的第三方插件,必须在jQuery之后加载它的脚本文件才行。比如:

<!-- 先加载jQuery -->
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<!-- 紧接着加载jSignature的脚本(可以用本地文件或官方兼容的CDN) -->
<script src="jSignature.min.js"></script>
  • 注意:如果用本地文件,要确认文件路径正确,浏览器能正常加载(可以在开发者工具的Network标签里查看是否出现404错误);如果用CDN,要确保链接指向有效的资源。

2. 确保代码在DOM和插件都加载完成后执行

你的调用代码可能在DOM元素#signature还没渲染、或者插件还没加载好的时候就运行了。可以把代码放在$(document).ready()回调里,确保页面完全就绪后再初始化:

$(document).ready(function() {
    // 这里初始化jSignature,你自定义的参数也可以加在这里
    $("#signature").jSignature({
        'UndoButton': false,
        color: "#000000",
        lineWidth: 5
    });
});

另一种更简单的方式是把你的脚本标签放在</body>标签的前面,这样页面DOM和所有外部脚本都加载完成后,才会执行你的初始化代码。

3. 排查jQuery冲突问题

有时候页面里的其他JS库(比如Prototype)会占用$符号,导致jQuery的$别名失效。可以试试这两种方法:

  • 直接用jQuery代替$调用插件:
    jQuery("#signature").jSignature();
    
  • 启用jQuery的noConflict模式,自定义别名:
    var $j = jQuery.noConflict();
    $j("#signature").jSignature();
    

4. 确认版本兼容性

你用的是jQuery 1.11.1,要确保你引入的jSignature版本和这个jQuery版本兼容。jSignature的旧版本通常对jQuery 1.x系列支持很好,尽量选择对应兼容的版本。


内容的提问来源于stack exchange,提问作者Rafael Mateus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:38:49