JavaScript函数只有在我第一次调用它时才起作用
JavaScript function is only working the first time I call it?
我想知道你们是否能帮我解决我遇到的问题。希望识别问题不需要查看我正在使用的图形包的文档,但如果需要,请点击:http://raphaeljs.com/reference.html#Element.transform.
我有以下代码块
window.setInterval(function()
{
mycirc.transform("t1,1");
}, 500);
其当然应当每半秒调用函数CCD_ 1。该函数应该将mycirc
的x和y坐标分别平移1个单位(参见上的Element.transform([tstr])http://raphaeljs.com/reference.html#Element.transform)。
然而,当我测试我的页面时,mycirc
会被翻译一次,然后随后的调用就没有效果了。我使用console.log(...)
来测试并确保:
window.setInterval(function()
{
var bb = mycirc.getBBox();
console.log("coords before transformation: " + bb.x + "," + bb.y);
mycirc.transform("t1,1");
var bb = mycirc.getBBox();
console.log("coords after transformation: " + bb.x + "," + bb.y);
}, 500);
产生
coords before transformation: 120.98508107696858,106 jsfunctions.js:411
coords after transformation: 121.98508107696858,107 jsfunctions.js:414
coords before transformation: 121.98508107696858,107 jsfunctions.js:411
coords after transformation: 121.98508107696858,107 jsfunctions.js:411
等等。
知道为什么会这样吗?
(我试着浏览图形包的源代码,但由于没有空白,它不可读。)
您的代码
mycirc.transform("t1,1");
与当前状态无关。它只是从原始状态转换为t1,1
,然后从t1,1
转换为t1,1
等。
每次都应该计算变换。
EDIT:因此它需要一个全局变量,每次递增,如:
var xyPos = 1;
window.setInterval(function()
{
mycirc.transform("t"+xyPos+","+xyPos);
xyPos++;
}, 500);
在链接的文档的用法部分,它展示了如何准备和附加转换。这对我来说意味着你的代码每次都会将转换重置为相同的东西。我从来没有使用过这个图形库,所以我不能肯定,但试一下下面的东西,看看它是否有效:
mycirc.transform("t1,1");
mycirc.transform("...t1,1");
mycirc.transform("...t1,1");
mycirc.transform("...t1,1");
我相信这将应用相同的变换4次。当然,您需要将此逻辑转换为一个间隔以供使用。
我认为这是预期的行为。引用文档:
将转换添加到与其他元素分离的元素属性,即平移不会改变矩形的x或y。
尝试:
var amount = 1;
window.setInterval(function()
{
mycirc.transform("t" + [amount, amount].join(','));
amount++;
}, 500);
相关文章:
- curl和fileget_contents在ajax调用后不起作用
- I'我试图在文本区域中进行特定的输入,调用特定的javascript函数,但没有成功;不起作用
- javascript函数调用不起作用
- javascript验证和ajax调用同时不起作用
- Ajax调用不起作用
- 从PHP调用JS函数不起作用
- jQueryAjax调用在单独的.js文件中不起作用
- HtmlBox(jquery插件)在ajax调用中不起作用
- 函数调用不起作用
- jQuery选择ajax调用中附加的元素不起作用
- jQuery调用keyup事件不起作用
- ng显示“;调用方法“;不起作用
- JavaFX+WebView/Javascript:setTimeOut不起作用调用堆栈来自Java
- .ajax调用在chrome中不起作用
- 为什么第二次调用isNaN时它不起作用
- IE9+IE10 AJAX调用不起作用
- 如果在include文件中使用连接,Jquery ajax调用将不起作用
- Angular 1.5变量在调用一次之前不起作用
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- SPA异步调用在IE 11中不起作用