Javascript 在每个返回的点击中插入保存变量
你们介意看看我为帮助你们理解我的问题而制作的JSFIDLE吗Javascript 在每个返回的点击中插入保存变量,javascript,jquery,xhtml,Javascript,Jquery,Xhtml,你们介意看看我为帮助你们理解我的问题而制作的JSFIDLE吗 (函数($){ $.fn.liveBindTest=函数(){ 返回此['live']('click',function()){ var-savedvar; 如果(!savedvar | | savedvar==0){ //是虚假的,做虚假的事情。 savedvar=1; jQuery('#result').append(savedvar); }否则{ //是真的,做真实的事情。 jQuery('#result').append(
(函数($){
$.fn.liveBindTest=函数(){
返回此['live']('click',function()){
var-savedvar;
如果(!savedvar | | savedvar==0){
//是虚假的,做虚假的事情。
savedvar=1;
jQuery('#result').append(savedvar);
}否则{
//是真的,做真实的事情。
jQuery('#result').append(savedvar);
savedvar=0;
}
返回false;
});
};
})(jQuery);
jQuery(文档).ready(函数(){
$('a.cref').liveBindTest();
});
我想为每次单击保存一个变量。您在事件处理程序中声明了变量,为每个处理程序创建了一个单独的局部变量 您需要在函数外部声明变量。
如果您希望每个元素都有一个单独的变量,那么可以在
每次调用中声明变量并添加处理程序,或者使用jQuery的.data
函数。您在事件处理程序中声明了变量,为每个处理程序创建了一个单独的局部变量
您需要在函数外部声明变量。
如果您希望每个元素都有一个单独的变量,那么可以在每次调用中声明变量并添加处理程序,或者使用jQuery的.data
函数。查看
是否要切换要执行的代码位?如果希望在闭包中保存该值,则需要在live事件处理程序函数之外声明它
如果需要为选择器匹配的每个元素保留该值,则可以使用$(elem).data()
存储如下所示的值查看
是否要切换要执行的代码位?如果希望在闭包中保存该值,则需要在live事件处理程序函数之外声明它
如果需要为选择器匹配的每个元素保留该值,那么可以使用$(elem).data()
来存储该值,如下所示您还没有设置test
变量。为什么不编写this.live(…)
?您还没有设置test
变量。为什么不编写this.live(…)
?savedvar对于每个变量都必须是独立的。在这种情况下,请将其保存在$.cache
使用$(elem)。data()
保存的dvar对于每个变量都必须是独立的。在这种情况下,请将其保存在$.cache
使用$(elem)。data()
@kr1zmo:很好,尽管你应该写这个.live(…)
@kr1zmo:很好,尽管你应该写这个.live(…)
。
<a href="#" class="cref">item</a>
<a href="#" class="cref">item 2</a>
<a href="#" class="cref">item 3</a>
<a href="#" class="cref">item 4</a>
<p id="result"></p>
<script language="javascript" type="text/javascript">
(function($) {
$.fn.liveBindTest = function() {
return this['live']('click', function() {
var savedvar;
if (!savedvar || savedvar == 0) {
// is false, do false things.
savedvar = 1;
jQuery('#result').append(savedvar);
} else {
// is true, do true things.
jQuery('#result').append(savedvar);
savedvar = 0;
}
return false;
});
};
})(jQuery);
jQuery(document).ready(function() {
$('a.cref').liveBindTest();
});
</script>