Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何将click函数放入回调函数中?_Jquery_Function_Callback_Click - Fatal编程技术网

Jquery 如何将click函数放入回调函数中?

Jquery 如何将click函数放入回调函数中?,jquery,function,callback,click,Jquery,Function,Callback,Click,我正在使用这个插件: 有没有可能像这样在回调函数中放置一个click函数 $('.auto-submit-star').rating({ callback: function(value, link){ $('.myclass').click(function(){ alert($(this).attr('id')); }); alert($(this).attr('id')); } }); 一旦我添加了click函数,回调函数将停止工作。我需

我正在使用这个插件:

有没有可能像这样在回调函数中放置一个click函数

$('.auto-submit-star').rating({ 
  callback: function(value, link){ 
    $('.myclass').click(function(){
      alert($(this).attr('id'));
    });
    alert($(this).attr('id'));
  } 
});
一旦我添加了click函数,回调函数将停止工作。我需要这样做,因为如果用户单击任何星星,我可以获取星星的id,但是如果用户单击取消按钮,我无法获取取消的id

假设您可以在回调中使用click函数,那么它还会触发它吗?因为在你点击它之后,它会触发回调,它还会在里面触发我的点击功能吗


如果我保持click函数的独立性,那么仍然可以工作,但是我必须在这两个函数中重复一系列代码。

尝试使用live处理程序

$(".myclass").live("click", function(){
  alert($(this).attr('id'));
});

尝试使用活动处理程序

$(".myclass").live("click", function(){
  alert($(this).attr('id'));
});

您是否考虑过使用jQuery的.live(type,fn)事件,而不是绑定回调上的单击


您是否考虑过使用jQuery的.live(type,fn)事件,而不是绑定回调上的单击


要防止单击时发生多个操作,您需要在添加新事件之前销毁以前的事件(否则它们将堆叠在一起)。要销毁(即杀死)事件,您需要:

$('.auto-submit-star').rating({ 
  callback: function(value, link){ 
    $(".myclass").die("click").live("click", function(){
      alert($(this).attr('id'));
    });
  } 
});
或者(最好)不要从回调中附加click事件。。。分开做

$(".myclass").live("click", function(){
    alert($(this).attr('id'));
});
$('.auto-submit-star').rating()

祝您的项目好运。

要防止单击时发生多个操作,您需要在添加新事件之前销毁以前的事件(否则它们将彼此叠加)。要销毁(即杀死)事件,您需要:

$('.auto-submit-star').rating({ 
  callback: function(value, link){ 
    $(".myclass").die("click").live("click", function(){
      alert($(this).attr('id'));
    });
  } 
});
或者(最好)不要从回调中附加click事件。。。分开做

$(".myclass").live("click", function(){
    alert($(this).attr('id'));
});
$('.auto-submit-star').rating()

祝你的项目好运。

简短的回答是“是的,这是可能的”。下面两种利用“实时”事件处理程序的解决方案都是jQuery1.3.x+的更合适的解决方案。简短的回答是“是的,这是可能的”。下面两个使用“实时”事件处理程序的解决方案都是jQuery1.3.x+Cool的更合适的解决方案,这很管用。然而,有时我会因为某种原因在评分后收到多个警报,即使只需单击一次。知道为什么会这样吗?很酷,这很有效。然而,有时我会因为某种原因在评分后收到多个警报,即使只需单击一次。知道为什么会这样吗?谢谢,这很有帮助。我之所以把click放在回调函数中,是因为在我得到id之后,我基本上会在每个函数中重复相同的代码,所以我试图减少重复的代码。嗯,实际上奇怪的是,放在live click函数之外的代码在live click函数中的代码之前被处理。为什么?罗杰:我想你对
live()
方法的作用感到困惑。基本上,我给出的第二个代码示例的前3行所做的是(1)查找具有类
myclass
的所有元素,并使其成为这样,每当单击其中一个元素时,就会弹出一个带有所单击元素id的警报框。然后,每次将另一个类为
myclass
的元素添加到DOM中时,它都会重复相同的过程。因此,本质上,作为用户,在单击匹配元素之前,您不会知道
live()
方法已被处理。那有用吗?啊,我明白了。可能不是我当时想做的p基本上,我需要这两个函数来运行相同的ajax请求,但我更愿意以不重复相同代码的方式来执行。不管我怎么想。谢谢你的帮助。谢谢,那很有帮助。我之所以把click放在回调函数中,是因为在我得到id之后,我基本上会在每个函数中重复相同的代码,所以我试图减少重复的代码。嗯,实际上奇怪的是,放在live click函数之外的代码在live click函数中的代码之前被处理。为什么?罗杰:我想你对
live()
方法的作用感到困惑。基本上,我给出的第二个代码示例的前3行所做的是(1)查找具有类
myclass
的所有元素,并使其成为这样,每当单击其中一个元素时,就会弹出一个带有所单击元素id的警报框。然后,每次将另一个类为
myclass
的元素添加到DOM中时,它都会重复相同的过程。因此,本质上,作为用户,在单击匹配元素之前,您不会知道
live()
方法已被处理。那有用吗?啊,我明白了。可能不是我当时想做的p基本上,我需要这两个函数来运行相同的ajax请求,但我更愿意以不重复相同代码的方式来执行。不管我怎么想。谢谢你的帮助。