我正在尝试创建一个动态函数,但我遇到了麻烦,因为我似乎无法在JS函数中运行我的JQuery代码。我有一个有效的例子here。
我有第二个例子here。两个JsFiddle的唯一区别是我从以下方式切换了呼叫功能:
$('#btnAdd').click(function() {
到这个调用函数:
function addBtn(){
和delBtn上的相同。我想这样做的原因是我可以传递一个参数,所以我知道我是否想要添加另一个问题字段或答案字段。
答案 0 :(得分:3)
jsFiddle默认将JavaScript代码包装在一个闭包中(即函数是私有变量)。你必须选择“没有包裹(身体)”:http://jsfiddle.net/UpEvK/2/。
答案 1 :(得分:0)
您提供的两个代码段在功能上有所不同。
这实际上是在注册点击事件:
$('#btnAdd').click(function)
在这种情况下,'function'只是一个回调函数,是触发click事件时要调用的函数的名称。因此,要使用您的第二个JS小提琴,您必须执行以下操作:
$('#btnAdd').click(addBtn);
如果您可以向我们提供有关您实际尝试使用代码的更多信息,我们可能会提供更详细的答案。
答案 2 :(得分:0)
我会从标记中获取该代码。您可以使用:
$('#btnAdd').click(function() {
addBtn();
});
现在你有多个:在标记中放一个class ='btnAdd'而不是onclick处理程序并使用:
$('.btnAdd').live('click',function() {
addBtn();
});
新标记:
<input class="btnAdd" type="button" value="Add Question" />
编辑:现在最终脚本支持两者:
$('.btnAdd,#btnAdd').live('click',function() {
addBtn();
});
注意1.7.1 jQuery用户;使用方法:
$(document).on('click','.btnAdd,#btnAdd',function() {
addBtn();
});