Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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通过单击传递数据_Jquery_Click_Live - Fatal编程技术网

jquery通过单击传递数据

jquery通过单击传递数据,jquery,click,live,Jquery,Click,Live,我试图将数据从一个点击函数传递到另一个点击函数,但不知道如何实现。 我有多个div,但我将向您展示两个div的主要思想: <div class="classname" id='prev'></div> <div class="classname" id='next'></div> $('#next).click(function() { $('.classname').trigger('click') }) $('#prev).cl

我试图将数据从一个点击函数传递到另一个点击函数,但不知道如何实现。 我有多个div,但我将向您展示两个div的主要思想:

<div class="classname" id='prev'></div>
<div class="classname" id='next'></div>


$('#next).click(function() { 
   $('.classname').trigger('click')

})

$('#prev).click(function() { 
   $('.classname').trigger('click')

})


$('.classname').live('click', function () {
 [a lot of code here depending on who called click]


})

如何将“a”变量发送到live,并根据“a”变量的值单击以使其以不同的方式运行

我想你在找这个():


这已经是可能的了!示例代码来自:

您还可以创建自定义
事件
对象,并在其中发送一些数据:

var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);
或者,您可以使用以下替代方法:

$("body").trigger({
    type:"logged",
    user:"foo",
    pass:"bar"
});

对不起,但我认为你这样做太复杂了。从两个事件处理程序调用公共函数。根据调用它的事件处理程序,使用不同的参数。不要使用.trigger和.live。

您已经非常接近了,传递给事件的额外参数需要表示为数组

$('.classname').trigger('click', a)
应该是

$('.classname').trigger('click', [a])
然后可以作为该事件处理程序上的附加参数访问

$('.classname').live('click',function(e,a){
    // a is whatever was passed into the first element of the array above
})

实例:

使用此代码,您将获得大量循环引用。单击#下一步或#上一步触发器是对同一元素的单击,这会触发对同一元素的单击,这。。。。。StackOverflow也许你能解释一下你想完成什么?您完全可以传递参数并触发一组元素上的单击事件。。。但真正的问题是,是否有更好/更干净的方法。但我们需要先了解你的目标。请详细说明!从一个事件处理程序调用另一个事件处理程序实际上不是一个好的实践,尤其是在一个困难的面向事件的应用程序中。哦,我认为您是以一种可以理解的方式表述自己的。我现在将告诉你我的观点(而且完全是我的,哈哈)。从您自己的代码调用事件处理程序可能是概念的替代。事件的最初概念是“来自另一个世界的反应”。从同一类中的另一个公共函数调用公共函数是一种替换。最初的概念是“提供与外部世界的接口”。如果事件处理程序/公共函数只是调用实际功能的“接收点”,那么代码复制将是最小的问题。
$('.classname').trigger('click', a)
$('.classname').trigger('click', [a])
$('.classname').live('click',function(e,a){
    // a is whatever was passed into the first element of the array above
})