【问题标题】:Mootools The Wall + SlimboxMootools The Wall + Slimbox
【发布时间】:2012-01-01 06:57:54
【问题描述】:

我正在使用 wall.plasm.it 并想使用 slimbox 全屏打开图像http://www.digitalia.be/software/slimbox

但是当我将 slimbox 脚本添加到我的网站并单击图像时,它只会打开图像并将我重定向到服务器上的图像,但不会启动 slimbox

【问题讨论】:

  • 听起来您没有正确初始化 slimbox,因此尚未将处理程序添加到图像中。如果您打开控制台(Chrome 中的 CTRL+ALT+J)是否有任何错误?
  • 没有错误我看到示例中没有用于初始化 slimbox 的代码,它似乎在带有 rel=lightbox 的链接上用完了? digitalia.be/software/slimbox
  • 这确实是它应该的工作方式。你也包括mootools吗?你能不能把一些代码放在 jsbin 或类似的地方?
  • github.com/plasm/the-wall/issues/7 似乎它没有像我希望的那样工作

标签: hyperlink mootools slimbox


【解决方案1】:

啊,看来您必须执行以下操作:

  1. 使用wall.setCallOnUpdate( myFunctionUpdate ); (this) 更新所有新生成的图像,使它们具有设置的rel=lightbox 属性。
  2. 重新初始化 slimbox。

--或--

您可以简单地使用CallOnUpdate 直接在使用API 的项目上启用slimbox

【讨论】:

  • 自世代以来他们已经有了rel=lightbox,但是如何重新初始化呢?
【解决方案2】:

我认为您需要使用事件委托 - 这就是我如何让我的墙与灯箱一起工作。我在 initWall() 方法和 changeOnUpdate() 之后调用了它,以便添加新事件。

var boundClicker;   


          $$('div.tile a').each(function(button) {


              var linkDest = button.get('href');
              var title = button.get('data-title');
              var type = button.get('rel');

              var clicker = function(event)
              {
                  event.stop();
                  Mediabox.open(linkDest, title, '470 290');
              };
              boundClicker = clicker.bind(button);
              button.addEvent('click', boundClicker);

           });

【讨论】:

    【解决方案3】:

    添加“点击”事件处理程序并使用 getMovement 函数。

    items.each(function(item) {
    item.addEvent("click",function(e){
    if( wall.getMovement() ){
        e.stop();
        }
        else {
                Mediabox.open(...);
        }
    }); }
    

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 2016-12-30
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多