假设我有一个按钮(实际上是几个按钮),单击该按钮将执行2件事中的1件事。这2件事中的哪一个取决于传递给函数的参数。这将被全部使用,因此我需要放置一个函数...而不是每次都在匿名函数中执行代码。我正在使用jquery,想知道什么是向click-handler函数提供参数和值的最佳方法。另外,我想完整保留对按钮的引用,$(this)
好像完全可能。这是我所拥有的:
$(document).ready(function() {
$('#button1').click({ labelStr: 'Open File' }, doLabel);
$('#button2').click({ labelStr: 'Close Window' }, doLabel);
});
function doLabel(e) {
console.log('it is: %o', e.data.labelStr);
$(this).html(e.data.labelStr);
}
...有效-jsfiddel-但我知道有很多方法可以给这只猫换皮。用这种方法可以戳出什么洞?
您的代码对我来说看起来不错。您是否正在寻找传递参数并将其直接映射到点击处理程序的参数列表的方法?如果是这样,您可以尝试以下方法:
$(document).ready(function() {
$('#button1').click(function() {doLabel.call(this, "Open File");});
$('#button2').click(function() {doLabel.call(this, "Close Window");});
});
function doLabel(labelStr) {
console.log('it is: %o', labelStr);
$(this).html(labelStr);
}
如果有多个参数,则可以执行doLabel.call(this, arg1, arg2, ...)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句