我正在使用DNN 5.4和默认的google api jQuery参考:



我已确认jquery.min.js正在加载。我不知道是否需要加载其他jQuery(插件除外)。

我正在使用Google Code jQuery Textbox Watermark插件(Link

Web Dev Toolbar和Firebug建议同时加载jQuery和Watermark插件。这段代码位于我的皮肤.ascs的顶部附近:

 <script type="text/javascript" src="/js/watermark/jquery.watermark.min.js"></script>


以下代码在基本html文档中有效(将输入包装在表单标签中)。但是,将其放置在DNN外观或DNN模块中时,将无法工作并在此处生成JavaScript。

<script language="javascript" type="text/javascript">
    (function ($) {
        $(document).ready(function () {
            jQuery("#xsearch").watermark("Leave blank for USA");
        })
    })(jQuery);
</script>

SearchString: <input type="text" id="xsearch" name="xsearch" />
<input type="button" value="search" id="xsubmit" name="xsubmit"   />


错误(FireBug):

jQuery("#xsearch").watermark is not a function
[Break on this error] jQuery("#xsearch").watermark("Leave blank for USA");


此备用代码产生相同的错误:

<script language="javascript" type="text/javascript">
    jQuery.noConflict();
    jQuery(function () {
        jQuery("#xsearch").watermark("Leave blank for USA");
        jQuery("#xsubmit").click(
            function () {
                jQuery("#xsearch")[0].focus();
            }
        );
    });
</script>


最后,当我用$替换jQuery时,会产生相同的错误

感觉像是某种冲突,但是我对下一步的工作迷失了方向。

在此先感谢您的时间

最佳答案

我注意到这是因为:

<script type="text/javascript" src="/js/watermark/jquery.watermark.min.js">


应该

<script type="text/javascript" src="js/watermark/jquery.watermark.min.js">


如果您的皮肤根目录中包含js文件夹。
您可以查看FireBug的net选项卡,以确保脚本引用正确加载。我判断这是因为我做了很多dnn开发,您引用的链接将变为
投放http://www.mydomain.com/tabId/80/js/watermark/jquery.watermark.min.js 时的http://www.mydomain.com/tabId/80/Default.aspx

关于asp.net - DotNetNuke-jQuery-为什么这个jQuery Watermark插件不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3733039/

10-11 22:12
查看更多