我有一个管理播放列表剪辑的脚本。它包含一个回调,指定当用户点击剪辑时如何处理播放列表:
$('div.clip').bind("click.playlist", function() {
...
});
我现在计划添加jquery-tabs,并希望创建第二个带有第二个回调的脚本,该脚本指定当用户点击剪辑时如何处理选项卡内容:
$('div.clip').bind("click.tabs", function() {
...
});
这是我的问题: 当用户点击剪辑时,我希望“click.tabs”回调在“click.playlist”回调之前执行。有谁知道怎么做?
答案 0 :(得分:3)
imho我会以另一种方式做到这一点:
$('div.clip').bind("clip.playlist", function() {
...
});
和
$('div.clip').bind("clip.tabs", function() {
...
});
然后点击:
$('div.clip').click(function(){
$(this).trigger('clip.playlist').trigger('clip.tabs');
});
获得事件链的完全控制。
答案 1 :(得分:1)
同一元素上的事件处理程序运行的顺序是无法保证。不要依赖它,在大多数事件系统中都是如此,它们被设计为分离的。如果你确实需要它,你需要设置一个处理器,它按顺序调用你需要的两个函数。
而不是
$('div.clip').bind("click.playlist", function() {
doSomething();
});
$('div.clip').bind("click.tabs", function() {
doSomethingElse();
});
做
$('div.clip').bind("click", function() {
doSomething();
doSomethingElse();
});
答案 2 :(得分:0)
如果您使用
怎么办?$('div.clip').click(function()
{
func1().func2()
});