0

我正在尝试将数据从一个单击功能传递到另一个单击功能,但不知道如何制作它。我有多个 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]


})

现在,我想传递一个这样的变量(或者以某种方式熟悉

$('#prev').click(function() { 
   a = 1;
   $('.classname').trigger('click', a)

})


$('.classname').live('click', function (a) {
 if ( a == 1 ) { do something } else { do something else }
 [a lot of code here depending on who called click]

})

如何根据“a”变量的值将“a”变量发送到实时点击以使其具有不同的 baheva?

4

4 回答 4

1

我想你正在寻找这个(演示):

$('#prev').click(function () {
    $('.classname').trigger('click', [1])
});

$('.classname').live('click', function (event, param) {
    if (param == 1) {
        alert('do something');
    } else {
        alert('do something else');
    }
})​
于 2012-08-01T15:58:14.983 回答
0

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

$('.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
})

现场示例:http: //jsfiddle.net/4KRFV/

于 2012-08-01T16:04:42.407 回答
0

抱歉,但我认为您这样做的方式过于复杂。从两个事件处理程序调用一个公共函数。根据您调用它的事件处理程序使用不同的参数。远离使用 .trigger 和 .live。

于 2012-08-01T16:04:03.740 回答
0

这已经是可能的了!示例代码来自:http ://api.jquery.com/trigger/

$("p").click( function (event, a, b) {
// when a normal click fires, a and b are undefined
// for a trigger like below a refers to "foo" and b refers to "bar"

} ).trigger("click", ["foo", "bar"]);

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

var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);

或者您可以使用此替代方法:

$("body").trigger({
    type:"logged",
    user:"foo",
    pass:"bar"
});
于 2012-08-01T15:59:18.270 回答