在JavaScript中按函数名调用函数?
我正在尝试下一个代码,但没有成功 HTML在JavaScript中按函数名调用函数?,javascript,jquery,Javascript,Jquery,我正在尝试下一个代码,但没有成功 HTML <a id="addBookButton" href="javascript:showForm('addBookButton','add-book','activateAddBookForm');" class="addA"><span>Add Book</span></a> Javascript function showForm(button,form,callback) { $("#"
<a id="addBookButton" href="javascript:showForm('addBookButton','add-book','activateAddBookForm');" class="addA"><span>Add Book</span></a>
Javascript
function showForm(button,form,callback) {
$("#"+button).hide();
$("#"+form).show();
callback();
}
Javascript
函数showForm(按钮、窗体、回调){
$(“#”+按钮).hide();
$(“#”+形式).show();
回调();
}
试试这个:
function showForm(button,form,callback) {
$("#"+button).hide();
$("#"+form).show();
if (typeof this[callback] == "function") this[callback]();
}
当然,您可以按值传递函数,而不仅仅是按函数的名称传递:
<a id="addBookButton" href="javascript:showForm('addBookButton','add-book',activateAddBookForm);" class="addA"><span>Add Book</span></a>
<a id="addBookButton" href="javascript:showForm('addBookButton','add-book',activateAddBookForm);" class="addA"><span>Add Book</span></a>
试试这个:
function showForm(button,form,callback) {
$("#"+button).hide();
$("#"+form).show();
if (typeof this[callback] == "function") this[callback]();
}
当然,您可以按值传递函数,而不仅仅是按函数的名称传递:
<a id="addBookButton" href="javascript:showForm('addBookButton','add-book',activateAddBookForm);" class="addA"><span>Add Book</span></a>
<a id="addBookButton" href="javascript:showForm('addBookButton','add-book',activateAddBookForm);" class="addA"><span>Add Book</span></a>
将a标签更改为:
<a id="addBookButton" href="#" onclick="showForm('addBookButton','add-book','activateAddBookForm'); return false;" class="addA"><span>Add Book</span></a>
注意onclick
处理程序,并且返回false代码>在onclick中。将a标记更改为:
<a id="addBookButton" href="#" onclick="showForm('addBookButton','add-book','activateAddBookForm'); return false;" class="addA"><span>Add Book</span></a>
注意onclick
处理程序,并且返回false代码>在onclick中。您只需将对函数的引用传递到showForm函数中即可
您只需将对该函数的引用传递到showForm函数中即可
一个选项是将函数作为引用而不是字符串传递,因此:
... javascript:showForm('addBookButton','add-book', activateAddBookForm); ....
或继续使用字符串:
function showForm(button,form,callback) {
$("#"+button).hide();
$("#"+form).show();
new Function(callback + '();')();
}
一个选项是将函数作为引用而不是字符串传递,因此:
... javascript:showForm('addBookButton','add-book', activateAddBookForm); ....
或继续使用字符串:
function showForm(button,form,callback) {
$("#"+button).hide();
$("#"+form).show();
new Function(callback + '();')();
}