0

我正在尝试将 Jmpress.js(impress.js 的一个分支,实际上是一个 jquery 插件)集成到 Drupal 7 中,但我发现了一些问题。

首先,我得到了“$ 不是函数”错误,我设法解决了直接指向 jQuery 而不是使用 $ 的问题,如其他地方所述。

但是现在我得到了一个公认的功能,这个东西真的很有效(错位的元素,仅在某些情况下操作的键导航),更重要的是我可以在 Firebug 控制台中看到很多错误消息。

在这里,我粘贴其中的一些:

$(hashLink).on is not a function
(?)()jmpress.js?m2hr5f (línea 1491)
step = "init"
eventData = Object { settings={...}, current={...}, container=[1], más...}
(?)()jmpress.js?m2hr5f (línea 278)
idx = 2
callback = function()
nodeName()jquery.js?v=1.4.4 (línea 34)
j = [firstSlide(step, eventData), function(), function()]
s = function()
v = function()
callCallback()jmpress.js?m2hr5f (línea 277)
callbackName = "selectInitialStep"
element = "init"
eventData = Object { settings={...}, current={...}, container=[1], más...}
init()jmpress.js?m2hr5f (línea 666)
args = Object { beforeChange=[0], beforeInitStep=[0], initStep=[0], más...}
f()jmpress.js?m2hr5f (línea 800)
(?)()jmpress.js?m2hr5f (línea 810)
idx = 0
element = div#simple
nodeName()jquery.js?v=1.4.4 (línea 34)
j = [div#simple]
s = function()
v = div#simple
toArray()jquery.js?v=1.4.4 (línea 27)
j = function()
s = undefined
jmpress()jmpress.js?m2hr5f (línea 809)
method = undefined
diapos()17 (línea 105)
noConflict()jquery.js?v=1.4.4 (línea 30)
j = function()
inArray()jquery.js?v=1.4.4 (línea 38)
[Parar en este error]   

$(hashLink).on("click"+current.hashNamespace, function(event) {

我现在有点迷茫,因为我已经努力让它工作了将近几天(我开始尝试使用原始的 impress.js,但我放弃了,因为集成 jquery 插件看起来更像可行的选择)。

我还尝试封装我的代码(这是一个启动 jmpress.js 的非常小的代码),但我想我做错了什么,因为我没有进一步了解它:)

任何帮助/想法将不胜感激。谢谢!

JMpress.js 已正确加载到标头中,我将此代码添加到已发布节点的主体中(PHP 代码过滤器处于活动状态,因此代码不会被剥离):

<script type="text/javascript">
jQuery(function() {
    jQuery('#simple').jmpress();
});
</script>
4

1 回答 1

1

问题与 jQuery 版本有关。

Drupal 7 适用于 jQuery 1.4.4,而http://shama.github.com/jmpress.js/#/home中的 jmpress 示例适用于 jQuery 1.7.1。

例如,该.on()函数在 1.7 中被添加到 jQuery ( http://api.jquery.com/on/ )

覆盖您要使用此插件的 jQuery 版本。

使用 hook_js_alter 删除不想要的 jQuery 版本并将其替换为 jquery 1.7.1。

请小心,仅在必要时使用它,因为在此更改后,您的 JS 代码的其他部分可能会被破坏。

于 2012-04-15T12:00:39.860 回答