我大致有以下工作:jQuery和事件冒泡... AGAIN
var i;
var k = 5;
$('document').ready(function() {
$('#someElement').click(function (e) {
e.stopImmediatePropagation();
i++;
if (i >= k) {
my_function();
});
}
});
my_function() {
alert(i);
$('#myDisplay').text("You have clicked on '#someElement' " + i + "times");
}
'创建my_function(),' 火灾时,我点击 '#someElement',符合市场预期,但alertbox弹出5 TIMES !!!
一个快速而明显的解决方案是放置my_function()的内容并将它们放入附加到'#someElement'的if控制语句中,但我非常希望保留我已概述的结构,并且肯定有一个简单的方法来做到这一点。
任何想法?
UPDATE
我本来认为这个问题是从我的“click”事件中的函数调用。这不是,我认为这个问题可能有一些做的嵌套“ajaxComplete”呼叫:
var i = 0;
$('document').ready(function() {
$('<div id="someElement">Click me</div>').appendTo('body');
$('<div id="myDisplay"></div>').appendTo('body');
$('#someElement').click(function (e) {
i++;
$.get("test.html", function(html)
{
$(html).ajaxComplete(function()
{
my_function(i);
});
});
});
});
function my_function(n)
{
switch (n)
{
case 1:
alert(n);
$('#myDisplay').text("this is case " + n);
break
case 2:
alert(n);
$('#myDisplay').text("this is case " + n);
break
case 3:
alert(n);
$('#myDisplay').text("this is case " + n);
break
default:
alert('A great detective always breaks the case. :)');
break
}
}
我省略常数“K”,视情况报表呈现的“如果”的声明前面的例子没用。上面的代码提供了我遇到的问题的更好的说明。
任何帮助将不胜感激。 :)
首先正确缩进代码。 – Anders 2010-08-01 23:40:55