起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2356|回复: 7

[结贴] 设置公共js

[复制链接]

6

主题

13

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
发表于 2017-5-23 16:41:17 | 显示全部楼层 |阅读模式
我在项目中创建了一个js文件,在上面写了一个方法,在这个工程中的 其他页面引入这个js文件,调用这个js文件中的方法,但是提示is not a function,
  1. function gundong(){
  2.                         var lefting = this.getParent().comp("wing").leftOPened;
  3.                         if(!lefting){
  4.                                 var messageMarquee = document.getElementById(this.getIDByXID("span25"));
  5.                                 messageMarquee.innerHTML = '<marquee direction="left" scrollamount=2 ><span style="padding-right:10px;color:#FFFFFF">2017.05.01 09:10:11 滚动起来。</span></marquee>';
  6.                         }else if(lefting){
  7.                                 var messageMarquee = document.getElementById(this.getIDByXID("span25"));
  8.                                 messageMarquee.innerHTML = '<marquee direction="left" scrollamount=0 ><span style="padding-right:10px;color:#FFFFFF">2017.05.01 09:10:11 滚动起来。</span></marquee>';
  9.                         }
  10.                        
  11.                        
  12.                 }
复制代码

这个是在js文件中写的方法,
  1. Model.prototype.leftBack = function(event){
  2.                 if(this.comp("wing").leftOpened){
  3.                         this.comp("wing").hideLeft();
  4.                         //var i = $(this.getElementByXid("content-1")).get("top");
  5.                         $(this.getElementByXid("content-1")).css({"top":"0px","left":"0px","height":"100%"});
  6.                         }
  7.                         var me = this;
  8.                         me.gundong();
  9.         };
复制代码

这个是在页面调用这个方法
  1. require("$UI/JdptApp/js/gundong");
复制代码

引入这个文件

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-23 17:24:11 | 显示全部楼层
你写成var XXX = require("$UI/JdptApp/js/gundong");
然后  XXX.方法名  这样呢?
回复 支持 反对

使用道具 举报

6

主题

13

帖子

33

积分

新手上路

Rank: 1

积分
33
QQ
 楼主| 发表于 2017-5-23 17:28:34 | 显示全部楼层
半导体 发表于 2017-5-23 17:24
你写成var XXX = require("$UI/JdptApp/js/gundong");
然后  XXX.方法名  这样呢?

Cannot read property 'gundong' of undefined
现在报的这个错了。。。  
回复 支持 反对

使用道具 举报

1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-5-23 18:04:55 | 显示全部楼层
liuxx 发表于 2017-5-23 17:28
Cannot read property 'gundong' of undefined
现在报的这个错了。。。

那是代码有错  打断点跟代码
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
发表于 2018-6-14 15:54:10 | 显示全部楼层
你的js文件具体写什么格式的。如果跟平台默认的格式一样,那么函数应该写在 var Model = function(){}的里面好像才可以,以前就问过类似问题,想写个包含多个公共函数的js文件,但是引用使用是个问题
传说中路过
回复 支持 反对

使用道具 举报

发表于 2018-6-14 18:09:27 | 显示全部楼层
carbinechun 发表于 2018-6-14 15:54
你的js文件具体写什么格式的。如果跟平台默认的格式一样,那么函数应该写在 var Model = function(){}的里 ...

按照amd规范 定义js  和引用就行
http://doc.wex5.com/js-module-01/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
发表于 2018-6-15 16:05:13 | 显示全部楼层
liangyongfei 发表于 2018-6-14 18:09
按照amd规范 定义js  和引用就行
http://doc.wex5.com/js-module-01/

试了下完全可以,能代楼主让版主结帖么
传说中路过
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
发表于 2018-6-15 16:25:35 | 显示全部楼层
本帖最后由 carbinechun 于 2018-6-15 16:26 编辑

两种js引用方式对于被引用js的加载方式不同,在文档中有具体说明:
[td]
引用JS方式
被引用JS的加载顺序
限制
require(‘xx’)预先加载被引用的JS,再加载当前JS;require参数必须是字符串常量;
require([xx, xx],function(p1,p2){})先加载当前JS,执行到require语句时,才加载被引用的JS;require参数支持变量或表达式;
[/td]


这两种方式的加载,是把引用的Js整个都加载过来,还是用到哪个函数就加载哪个函数呢?两种方式有区别么?

传说中路过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-25 14:46 , Processed in 0.067373 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表