以下"完成"单击按钮时回调效果很好。但是使用浏览器后退按钮,不会再次调用完成的回调。
$.pjax({
url: $this.attr("href"),
container: '#div-section',
push: true
}).done(function() {
$object.init();
});
是否还有另一种方法可以在pjax结束时触发其他javascripts而不是完成(因为它不起作用)?
答案 0 :(得分:0)
找到解决方案,但我猜在页面中只有一个这样的处理程序 -
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],
['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']]
tuples = list(zip(*arrays))
np.random.seed(1000)
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index)
print(df)
first bar baz foo qux \
second one two one two one two one
A -0.804458 0.320932 -0.025483 0.644324 -0.300797 0.389475 -0.107437
B 0.595036 -0.464668 0.667281 -0.806116 -1.196070 -0.405960 -0.182377
C -0.138422 0.705692 1.271795 -0.986747 -0.334835 -0.099482 0.407192
first
second two
A -0.479983
B 0.103193
C 0.919388
df = pd.concat([df.mean(), df.std()], keys=('mean','std')).unstack(1)
df.index = [[0] * len(df.index), ['_'.join((col[1], col[0])) for col in df.index]]
df = df.unstack()
print (df)
first bar baz \
one_mean one_std two_mean two_std one_mean one_std two_mean
0 -0.115948 0.700018 0.187319 0.596511 0.637865 0.649139 -0.382846
first foo qux \
two_std one_mean one_std two_mean two_std one_mean one_std
0 0.894129 -0.610567 0.507346 -0.038656 0.401191 0.039126 0.32095
first
two_mean two_std
0 0.180866 0.702911
编辑
上述解决方案导致pjax调用的双重绑定,一旦进入pjax:成功,然后第二次进入完成事件回调。要在后面/前面或pjax上只执行一个绑定,我们可以执行以下操作。在这种情况下,可以使用globalEventDirection在pjax中有条件地绑定:成功将init保留为完成,以防单击按钮。但是使用后退和前进按钮,init将在pjax:success
中完成$(document).on("ready pjax:success", function(){
//initialize all javascripts here
});