我正在使用telerik网格控件,它显示一个具有其他功能的网格,分页,排序,过滤等。
当在网格上点击过滤按钮时,它会弹出'过滤器对话框。具体而言,是具有div
和input
控件的button
。
我想绑定到过滤器button
控件的点击。问题是过滤器对话框弹出'这似乎是动态完成的,因此调用$(document).ready()
时元素不存在。它也没有给出身份证明,但我希望我可以从课堂上获得它。
我读过这篇文章,除非我相信它是在telerik代码中,因此更难修改...... http://www.learningjquery.com/2008/05/working-with-events-part-2
还建议使用live()
并像这样绑定 - 但它似乎没有拿起控件...
关于如何绑定点击此按钮的任何想法?
由于过滤器使用ajax,我也尝试绑定到ajaxSend
,但是我需要一种方法来查找导致它的ajaxSend
绑定内部,或者是什么控件使它发生......我不确定该怎么做。
感谢。
使用jquery 1.4.4
使用代码
进行更新$(".t-button.t-button-icontext.t-filter-button").live("click", function () {
alert('got it');
});
<div class="t-filter-help-text">And</div>
<select class="t-filter-operator">
<option value="endswith">Ends with</option>
<option value="eq">Is equal to</option>
<option value="ne">Is not equal to</option>
<option value="startswith">Starts with</option>
<option value="substringof">Contains</option>
</select>
<input type="text">
<button class="t-button t-button-icontext t-filter-button">
<span class="t-icon t-filter"></span>Filter
</button>
</div>
我很确定选择器不是问题,因为我已经使用.length
检查了页面的静态按钮和jquery文档。当然,在jquery文档准备就绪后,单击过滤器并使动态内容可用,然后单击按钮,接收1,结果为0.
我弄清楚它为什么不起作用。在生成对话框的telerik代码中,有一个stopPropagation()
调用。如果我删除它,过滤器对话框将变得不可用(单击任何地方将其关闭)。在这种情况下,我不确定是否有解决此问题的方法。
答案 0 :(得分:0)
我最终通过使用Brandon Aaron's liveQuery插件解决了这个问题,即使调用了.stopPropagation()
,也允许事件传播,并允许我成功保留过滤器对话框的功能。< / p>