将变量从内联 Javascript 传递到单独文件中的单击处理程序
Passing variable from inline Javascript to click handler in separate file
我有一些内联 javascript 用于使用签名板 https://github.com/szimek/signature_pad
它看起来像这样:
var signaturePad = new SignaturePad(canvas, {
backgroundColor: 'rgb(255, 255, 255)'
});
clearButton.addEventListener("click", function (event) {
signaturePad.clear();
});
在页脚中我有一个单独的文件
click.js
$('.send-signature').on( 'click', function( event ) {
event.preventDefault();
console.log(event);
var $button = $(this);
$button.prop("disabled",true);
if (signaturePad.isEmpty()) {
alert("Please provide a signature first.");
return false;
}
} );
当我点击按钮时,我得到:
未捕获的 ReferenceError:signaturePad 未定义
如果我点击 clearbutton 按钮,它工作正常。我不明白问题是什么以及我应该如何将 signaturePad 传递给点击处理程序。
Click.js 包含在内联 javascript.
下方
我已经尝试了很多不同的解决方案,但我认为这是我所取得的最深入的解决方案。有人能给我指出正确的方向并说明为什么这不起作用吗?
您可以将 signaturePad 变量保存在 window 对象中
window.signaturePad = new...
然后以同样的方式访问它
window.signaturePad.isEmpty()
这不是最漂亮的做法javascript,但我认为它可以满足您的目的。
您可以尝试将其添加到您的 clearButton 行下方吗?
另外,也许将 send-signature 更改为 addListener 格式,看看是否有任何改变。
$('.send-signature').on( 'click', function( event ) {
event.preventDefault();
console.log(event);
var $button = $(this);
$button.prop("disabled",true);
if (signaturePad.isEmpty()) {
alert("Please provide a signature first.");
return false;
}
} );
我有一些内联 javascript 用于使用签名板 https://github.com/szimek/signature_pad 它看起来像这样:
var signaturePad = new SignaturePad(canvas, {
backgroundColor: 'rgb(255, 255, 255)'
});
clearButton.addEventListener("click", function (event) {
signaturePad.clear();
});
在页脚中我有一个单独的文件 click.js
$('.send-signature').on( 'click', function( event ) {
event.preventDefault();
console.log(event);
var $button = $(this);
$button.prop("disabled",true);
if (signaturePad.isEmpty()) {
alert("Please provide a signature first.");
return false;
}
} );
当我点击按钮时,我得到: 未捕获的 ReferenceError:signaturePad 未定义
如果我点击 clearbutton 按钮,它工作正常。我不明白问题是什么以及我应该如何将 signaturePad 传递给点击处理程序。
Click.js 包含在内联 javascript.
下方我已经尝试了很多不同的解决方案,但我认为这是我所取得的最深入的解决方案。有人能给我指出正确的方向并说明为什么这不起作用吗?
您可以将 signaturePad 变量保存在 window 对象中
window.signaturePad = new...
然后以同样的方式访问它
window.signaturePad.isEmpty()
这不是最漂亮的做法javascript,但我认为它可以满足您的目的。
您可以尝试将其添加到您的 clearButton 行下方吗? 另外,也许将 send-signature 更改为 addListener 格式,看看是否有任何改变。
$('.send-signature').on( 'click', function( event ) {
event.preventDefault();
console.log(event);
var $button = $(this);
$button.prop("disabled",true);
if (signaturePad.isEmpty()) {
alert("Please provide a signature first.");
return false;
}
} );