Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript rapheal js Element.node.onclick()和Element.click()_Javascript_Jquery_Raphael - Fatal编程技术网

Javascript rapheal js Element.node.onclick()和Element.click()

Javascript rapheal js Element.node.onclick()和Element.click(),javascript,jquery,raphael,Javascript,Jquery,Raphael,您好,我刚刚开始使用拉斐尔,但是我对下面的代码感到非常困惑 为什么此代码有效 var paper = Raphael("canvas_container", 320, 200); var mycir = paper.circle(50, 40, 30); mycir.node.onclick = function() { alert("any thing") } 和这并不重要 var paper =

您好,我刚刚开始使用拉斐尔,但是我对下面的代码感到非常困惑

为什么此代码有效

            var paper = Raphael("canvas_container", 320, 200);
            var mycir = paper.circle(50, 40, 30);
            mycir.node.onclick = function() { alert("any thing") }
这并不重要

            var paper = Raphael("canvas_container", 320, 200);
            var mycir = paper.circle(50, 40, 30);
            mycir.click = function() { alert("any thing") } 
我也试过了,但没有成功:

            mycir.click(function(){alert("any thing")});

有什么区别?当我查看拉斐尔文档时,他们使用
元素。单击()。为什么我不能使用它们,这是我的版本还是什么?

问题是您试图分配给click,而不是调用它。 这应该起作用:

        var paper = Raphael("canvas_container", 320, 200);
        var mycir = paper.circle(50, 40, 30);
        mycir.click(function() { alert("any thing") });

请注意,Raphael建议不要使用
.node
(因为它说:“不要弄乱它。”)

谢谢您的回复。。。但我提到我试过这个,但它不起作用。我实际上在JSFIDLE中试过,它起作用了,但我没有保存它!:(你需要点击圆的线条才能工作,单像素线条不容易,你是否尝试过增加笔划宽度以使其更明显?我只是注意到一些奇怪的事情……如果你在圆()中添加attr())它工作得很好???这让你对像素问题的评论准确地解释了发生了什么,设置更大笔划宽度或填充的属性消除了单击非常薄的边缘的困难,我认为这就是为什么你没有看到它工作的原因。但即使没有属性,如果你设法单击正确的像素,它也应该工作(使用浏览器放大也会有帮助,SVG很好)请将此添加到您的答案中…谢谢