我正在尝试将数据从一个单击功能传递到另一个,并且不知道如何制作它。 我有多个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'变量进行实时点击以使其变为不同?
答案 0 :(得分:1)
我认为你正在寻找这个( 见DEMO ):
$('#prev').click(function () {
$('.classname').trigger('click', [1])
});
$('.classname').live('click', function (event, param) {
if (param == 1) {
alert('do something');
} else {
alert('do something else');
}
})
答案 1 :(得分: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"
});
答案 2 :(得分:0)
很抱歉,但我认为你是以一种过于复杂的方式做到这一点。从两个事件处理程序中调用一个公共函数。根据您调用的事件处理程序,使用不同的参数。远离使用.trigger和.live。
答案 3 :(得分: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
})