我正在尝试将一个函数集成到另一个函数中并且感到困惑。
我要做的是添加一个jQuery函数,它将调用一个随机引用,我希望该函数在jQuery Tabs UI中的选项卡更改时触发。
这是随机引用函数:
$.get('quotes.txt', function(data) {
var quotes = data.split("\@");
var idx = Math.floor(quotes.length * Math.random());
$('.quotes').html(quotes[idx]);
});
下面是选项卡init(以及更改选项卡时折叠div的另一个函数):
$(document).ready(function() {
var $tabs= $("#tabs").tabs({
fx : {
opacity: 'toggle'
},
select : function(event, ui) {
$(".entry-content").hide();
} //I assume it goes near here, but no luck
});
});
引号函数是否需要首先调用变量?
并且,如果引用div在更改引号时也使用fx不透明效果,它将如何工作?
编辑4/27/11
这可以在函数中使用fx效果:
$(document).ready(function () {
var $tabs = $("#tabs").tabs({
fx: {
opacity: 'toggle'
},
select: function (event, ui) {
$(".entry-content").hide();
$('div#quotescontainer').load('quotes.html', function () {
var $quotes = $(this).find('div.quote');
var n = $quotes.length;
var random = Math.floor(Math.random() * n);
$quotes.hide().eq(random).fadeIn();
});
}
});
});
答案 0 :(得分:1)
以下是我如何监控选项卡上的更改,然后启动引用功能。
$("#tabs ul li a").click(function(e) {
update_quote();
});
function update_quote() {
$.get('quotes.txt', function(data) {
var quotes = data.split("\@");
var idx = Math.floor(quotes.length * Math.random());
$('.quotes').fadeOut();
$('.quotes').html(quotes[idx]);
$('.quotes').fadeIn();
});
}
update_quote函数可以清理并简化,我保持非常详细,以便您可以看到如何更新它。你也可以链接你的jquery效果。
答案 1 :(得分:1)
代码应该进入花括号
$(document).ready(function() {
var $tabs= $("#tabs").tabs({
fx : {
opacity: 'toggle'
},
select : function(event, ui) {
$(".entry-content").hide();
// <-- code goes here
} //I assume it goes near here, but no luck <-- NO!
});
});
就个人而言,我会把它放在标签的'show'事件中,但这应该不是问题。
我已经设置了一些测试代码,以便您了解它应该如何:http://jsfiddle.net/PyN5Y/1/
$( "#tabs" ).tabs({
select: function(event, ui) {
alert('triggered on select');
doStuff();
},
show: function(event, ui) {
alert('triggered on show');
doStuff();
}
});
function doStuff() {
alert('doing stuff');
}