传播后点击JQuery

时间:2011-07-12 10:08:52

标签: javascript jquery ajax telerik

我已经搜索了高低,以获得答案。我知道有一种方法可以在触发点击事件时停止传播,但有一种方法可以在传播后运行点击事件代码

我问的原因是,我有一个在服务器上动态构建的telerik RadTabStrip。在每个标签页中都有一个地图,上面有标记,指示人们在办公室的位置。我需要在用户单击选项卡时获取第一个标记的句柄,但我遇到的问题是标记元素不是DOM的一部分,直到 点击传播之后。

$('.tab').click(function(e){

   // e.continuePropagation(); ?? or something?

   var markerTop = $('.cardiff').offSet().top; // Is always 0 even though the marker is 243 px from the top

}):

我没有使用telerik客户端api的原因是因为我在几个JQuery AJAX success函数中,并且不确定它的行为方式。

修改 我已经使用另一个AJAX调用解决了我的问题,但我仍然想知道是否有一种方法可以在click事件中的代码之前运行默认值

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

试试这个:

$('.tab').click(function(e){

   // e.continuePropagation(); ?? or something?

   setTimeout(function(){var markerTop = $('.cardiff').offSet().top;},0);

}):

setTimeout调用中的函数将在当前线程执行后调用,这似乎就是你想要的。

答案 2 :(得分:0)

如果通过单击选项卡上的某些内容中的AJAX,或者其中包含标记,则需要在该代码中进行回调,而不是在选项卡的单击事件中。

我无法想办法获取点击事件回调中尚未成为DOM一部分的内容。

查看TabStrip文档,您只想确实使用OnClientTabSelected事件?您提到您正在进行一些自定义Ajax调用,但是这些调用可能会在预先构建的telerik事件中移动吗?

答案 3 :(得分:0)

因此,如果您需要在元素进入DOM时触发事件(我猜这是您的问题,因为您的标记在点击事件后进入DOM),您可以查看livequery插件。这是一个旧的插件,但它会让你在创建后立即附加和操纵它们(这样你就可以获得它们的位置!)