2012-12-03 157 views
0

所以,当有人点击某个类名的元素(这些类中的10个)时,我正在运行一个函数。然后在这个函数中,我有另一个点击侦听器与另一个类名称的元素(另一个10)。我希望这个第二次点击功能只能在第一次点击后发生一次。在另一个函数中只运行一次点击函数

因此,理想情况下,有人会从一组10个点击一些东西,然后我从中拉出数据并应用它,当有人从另一组10点击一个元素。然后为了点击第二组10个将不得不再次点击第一组中的内容。

我无法解决这个问题,我试过某种.one实现。

$('.words_col .wrap').click(function(){ 
    theFunction(this) 
}) 

然后

function theFunction(e) { 
    $('.examples_col .wrap').click(function(){ 
    //allow only once. 
    }) 
} 
+0

为什么你需要在代码级别确保这一点?难道你不能只禁用当前不可点击的元素吗? –

+0

使用一个()http://api.jquery.com/one/ –

回答

1
$('.words_col .wrap').click(function(){ 
    theFunction(this); 
}); 

function theFunction(e) { 
    var oncer = true; 
    $('.examples_col .wrap').click(function(){ 
    if(!oncer){return false;} 
    oncer = false; 
    //allow only once. 
    }) 
} 

我,因为你有一个以上的元素添加此作为替代.one被选中和.one将允许每个点击一次,而不是一次点击总数。

+0

谢谢!我尝试了几个变化,但一定是刚刚关闭。这很好。我会投票,但我没有足够的声望。 – newbiedev

0

one()将连接点击一次:

$('.words_col .wrap').on('click', function(){ 
    $('.examples_col .wrap').one('click', function(){ 
     //works only once 
    }); 
});