【问题标题】:visualforce + jquery视觉力 + jQuery
【发布时间】:2012-02-27 01:25:07
【问题描述】:

我正在尝试在 force.com 站点中实现 jquery 库插件。我已经上传了一个包含所有必需文件的 zip 文件作为静态资源。

我引用的样式表和javascript如下:

<apex:includeScript value="{!URLFOR($Resource.jqueryadgallery, 'jquerygallery/jquery.ad-gallery.js')}" />
<apex:stylesheet value="{!URLFOR($Resource.jqueryadgallery, 'jquerygallery/jquery.ad-gallery.css')}"/>

这可行,我正在获取插件的相关 CSS(在此处查看 - http://coffeescripter.com/code/ad-gallery/)。但唯一有效的部分是图像缩略图正在显示,并带有 CSS 文件中定义的图像边框。你可以看到我在这里做了什么 - http://fusedev-developer-edition.ap1.force.com/ImageDemo。我已按照文档进行操作,但在我看来 JavaScript 无法正常工作。

【问题讨论】:

    标签: jquery salesforce visualforce


    【解决方案1】:

    这里有几件事要检查:

    • Salesforce 使用prototype.js,它与jQuery 一样,使用全局变量$。最好在脚本顶部做类似$j = jQuery.noConflict(); 的操作,以防止 jQuery 破坏原型。您还需要更改所有 javascript 以使用 $j 而不是 $ 用于 jQuery 内容。

    • 看起来您的 jquery 插件脚本是在 jQuery 本身之前加载的。确保您的第一个 apex:includeScript 加载 jQuery。

    • 我的浏览器在您的 VF 页面中报告语法错误:

    【讨论】:

    • 干杯 jeremy,但我已经有了 jquery.noConflict()。该错误是由于我仍在玩弄它,现在已修复。而且我已经将包含脚本移到了插件脚本之上,但仍然没有运气。还有其他想法吗?
    • 你的 JS 有多个非常基本的语法错误。首先匹配你的括号。
    • 干杯杰里米原来我错过了一些javascript并将其保留为$。再次感谢。
    【解决方案2】:

    <apex:includeScript value="{!URLFOR($Resource.jquery, '/jquery/external/jquery/jquery.js')}"/>
    <apex:includeScript value="{!URLFOR($Resource.jquery, '/jquery/jquery-ui.min.js')}"/>
    
    <script>
        j$ = jQuery.noConflict();
        if(j$){
            alert('Success');
        }else{
            alert('Failure');
        }
    </script>
    

    【讨论】:

    • 你能解释一下你的例子吗?
    • 我认为你不能通过提示用户存在多个 jQuery 来解决这个问题。
    • 首先,您必须将 jquery zip 文件上传到静态资源。如果您使用此方法,则需要指向 2 个文件,它们是 jquery.js 和 jquery-ui.min.js。我们没有使用冲突,因为 $ 在视觉力和 jquery 中有不同的含义。这里的警报消息说如果您的代码工作正常,那么它将显示成功,否则将显示失败。我们为什么要使用这个成功和失败消息?在 Salesforce 中,没有其他方法可以验证视觉强制页面中的 javascript。
    猜你喜欢
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多