2011-09-08 87 views
0

我解释你的问题:
我在页面中有一个隐藏的iframe。 点击我通过ajax加载位于iframe内的div内的一些内容。
指向脚本的链接位于iframe的源内部。
我通过ajax加载的内容应该是可滚动的,我使用基于UI滑块和可拖动(jScrollbar)的自定义滚动条。
我将自定义滚动条初始化为ajax加载函数的回调,但它只能部分工作:
鼠标滚轮功能非常完美,但我无法通过单击鼠标滚动鼠标。问题jquery-ui draggable()内部框架

这里是代码:

$(function(){ 
    store_frame();//write the frame intop the page 
    $('.submenu').show(); 
    $('a#click').click(function(){ 
     $("#iframe_sub").contents().find('#text_box .wrap').load('presenza.html', function(){ 
      $("#iframe_sub").contents().find('#text_box .wrap').fadeIn(fade_time, function(){ 
       $("#iframe_sub").contents().find('.jScrollbar').jScrollbar({ 
         allowMouseWheel: 'true' 
       }); 
      }); 
     }); 
    }); 
}); 

什么想法?

+0

我也尝试了随机可拖动的div和我有同样的问题。 – junray

回答

0

我有同样的问题,问题是在jQuery代码中添加事件的方式。第一次点击之后,jQuery应该在当前文档上添加一个mousemove事件,但是它的错误是因为它使用了document.addEventListener。此文档引用框架之外,它应该是这样的:

var iframe = TheCurrentFrame; //how to access that?? 
    iDoc = iframe.contentWindow  // sometimes glamorous naming of variable 
     || iframe.contentDocument; // makes your code working :) 
if (iDoc.document) { 
    iDoc = iDoc.document; 
    iDoc.body.addEventListener('mousemouve', eventHandler); 
}; 

我需要的jQuery的正确版本,知道如何借助iframe打交道时正确地将事件。我试图在我的框架中附加一个自定义事件,当触发时会调用jscrollbar或滑块(然后从框架中)。但似乎我不能从框架外触发任何东西。让我知道如果你发现东西