我在Rails项目中使用Foundation 6和Filterrific gem。我想触发以下内容:
$(document).on('changed.zf.slider', Filterrific.submitFilterForm);
' changed.zf.slider'是基金会发布的事件。 Filterrific.submitFilterForm是我想要调用的函数。但是,即使我绑定到这样的事件,它也不起作用:
$(document).on('changed.zf.slider', function() { Filterrific.submitFilterForm() });
上面的代码是在浏览器中加载Filterrific代码后定义的。
这是Filterrific jquery代码的问题,还是应该使用不同的方法来绑定事件?
如果我只是将原始的Filterrific.submitFilterForm方法体复制到我的绑定中,它可以正常工作
$(document).on('changed.zf.slider', function() {
var form = $("#filterrific_filter"),
url = form.attr("action");
$.ajax({...
......但感觉它不是正确的方法吗? ;)
答案 0 :(得分:1)
这里棘手的问题是Filterrific.submitFilterForm
依赖于传递给它的this
上下文并查找父<form>
元素。
因此,您需要使用正确的上下文调用该函数,例如:
$(document).on('changed.zf.slider', function() {
Filterrific.submitFilterForm.call($('#filterrific_filter .slider'))
});