我正在尝试更改JQuery项目中名为variable
的{{1}},这样我就不必为每个项目在每个projectCounter
内重复按钮。如何在所有功能都可以访问的功能中进行更改?这就是我到目前为止所做的:
div
我也做了一个JSfiddle:http://jsfiddle.net/cPFRD/
答案 0 :(得分:0)
保留第一个var
并删除函数内的一个<{p}
var projectCounter = 1;
$('a').click(function() {
function setValue() {
projectCounter = projectCounter + 1;
alert(window.projectCounter);
}
});
您的setValue()
函数永远不会在您发布的代码中运行。它只会在点击后定义(因此之前不可用),并且只有在点击之后才能调用/运行它。那是你要的吗?如果您希望在点击时添加projectCounter
变量,请移除整个function setValue()
,只留下其内容。
当您运行setValue()
时,projectCounter将为2,在此示例中。
您也可以仅使用projectCounter++;
来实现projectCounter = projectCounter + 1;
答案 1 :(得分:0)
即使在运行javascript后添加了div&gt; a,以下代码也能正常运行。
的JavaScript
var counter = 0;
$('.container').on('click', 'div a', function () {
counter++;
alert(counter);
});
HTML
<div class="container">
<div>
<a>Increase Counter</a>
</div>
</div>
答案 2 :(得分:0)
var projectCounter = 1;
$('a').click(function() {
setValue();//this actually calls the function and thus makes it happen
});
//defining/declaring a function, doesn't actually do anything until it is called
function setValue() {
projectCounter = projectCounter + 1;//no var keyword because we want to reference the existing variable, not declare a new one
alert(window.projectCounter);
}
这应解决您的代码无法正常工作的问题。我并未声称这是最佳做法。
答案 3 :(得分:0)
var projectCounter = 1;
function setValue() {
projectCounter += 1;
alert(window.projectCounter);
}
$('a').click(function(e) {
e.preventDefault();
setValue();
});
我认为这是你想要完成的事情。现在您可以添加其他事件来呼叫setValue()
。我必须说你应该更具体地说明你所引用的a
标签。
答案 4 :(得分:0)
您的计数器属于全球范围,因此无处不在:
var projectCounter = 1;
$('a').click(function() {
alert(projectCounter++);
});
答案 5 :(得分:0)
var projectCounter = 1;
$('a').click(function() {
function setValue() {
projectCounter = projectCounter + 1;
alert(window.projectCounter);
}
});
您需要从设定值功能中删除var。您还应该在.click事件之外移动此功能,以便在需要时可以在其他位置使用它。
答案 6 :(得分:0)
在函数内声明var
时,您明确地给它一个局部范围。如果在使用变量时不使用var
,则始终将其视为全局变量。因此,在您的情况下,您在函数内部使用var
,这为该函数提供了本地范围。
最后,你实际上并没有在任何地方调用setValue()。所以该功能实际上并没有执行。你的意思是这个吗?
var projectCounter = 1;
$('a').click(function() {
projectCounter = projectCounter + 1;
alert(window.projectCounter);
});