Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
onClick不在Appcelerator Alloy应用程序中SVG的iOS上工作_Ios_Svg_Appcelerator_Appcelerator Titanium_Appcelerator Alloy - Fatal编程技术网

onClick不在Appcelerator Alloy应用程序中SVG的iOS上工作

onClick不在Appcelerator Alloy应用程序中SVG的iOS上工作,ios,svg,appcelerator,appcelerator-titanium,appcelerator-alloy,Ios,Svg,Appcelerator,Appcelerator Titanium,Appcelerator Alloy,我正在使用此小部件在我的钛合金应用程序中显示SVG: SVG显示得很好,但是当我在iOS上点击SVG时,onClick事件不会触发。Onclick在Android上工作。我已经尝试将onClick应用于小部件本身,并将其应用于包含的元素。我可以单击包含元素,但不能单击SVG <View class="dashboardGridCell" onClick="goToPayBill"> <View class="dashboardIcon"> <

我正在使用此小部件在我的钛合金应用程序中显示SVG:

SVG显示得很好,但是当我在iOS上点击SVG时,onClick事件不会触发。Onclick在Android上工作。我已经尝试将onClick应用于小部件本身,并将其应用于包含的元素。我可以单击包含元素,但不能单击SVG

<View class="dashboardGridCell" onClick="goToPayBill">
    <View class="dashboardIcon">
        <Widget class="dashboardIconSvg" src="com.capnajax.vectorimage" svg="svg/circle-check.svg" style="svg/white-fill.css" onClick="goToPayBill"/>
    </View>
    <Label class="dashboardIconLabel">Pay Bill</Label>
</View>

付账单

是否有更好的小部件用于显示SVG,或者我在应用onclick时有什么地方做错了?

小部件不支持XML中的onclick处理程序,因为它们不是标准的Tianium代理对象,它们可以是其创建者定义的任何对象。另外,现在,即使指定了onClick属性,我们也不会计算作为函数传入的onClick参数

要在小部件上设置单击事件,您需要在javaScript中执行此操作(因此您需要给它一个id)

在XML中,将其更改为以下内容:

<Widget id="dashboardIcon" class="dashboardIconSvg" src="com.capnajax.vectorimage" svg="svg/circle-check.svg" style="svg/white-fill.css" onClick="goToPayBill"/>

希望这有帮助

小部件不支持XML中的onClick处理程序,因为它们不是标准的代理对象,它们可以是创建者定义的任何对象。另外,现在,即使指定了onClick属性,我们也不会计算作为函数传入的onClick参数

要在小部件上设置单击事件,您需要在javaScript中执行此操作(因此您需要给它一个id)

在XML中,将其更改为以下内容:

<Widget id="dashboardIcon" class="dashboardIconSvg" src="com.capnajax.vectorimage" svg="svg/circle-check.svg" style="svg/white-fill.css" onClick="goToPayBill"/>

希望这有帮助

通过修改来自的小部件的源代码,我能够让onclick在iOS上工作。在controllers/widget.js的第197行,我添加了这一行,它将空的onclick侦听器应用于包含SVG元素的webview:

// Added empty click listener to allow click events to be passed through
view.addEventListener('click', function() {});
在我自己看来,我能够对包含的元素应用onclick,当我点击SVG时,onclick现在可以正确触发。我不必向小部件元素添加onclick,也不必在控制器的javascript中应用onclick

<View class="dashboardGridCell" onClick="goToPayBill">
    <View class="dashboardIcon">
        <Widget class="dashboardIconSvg" src="com.capnajax.vectorimage" svg="svg/circle-check.svg" style="svg/white-fill.css"/>
    </View>
    <Label class="dashboardIconLabel">Pay Bill</Label>
</View>

付账单

使用第一个答案中的方法通过JavaScript应用onclick不起作用。虽然这个修复对我来说很有效,但我愿意接受关于如何更好地启动onclick的建议。

我能够通过修改来自的小部件的源代码使onclick在iOS上运行。在controllers/widget.js的第197行,我添加了这一行,它将空的onclick侦听器应用于包含SVG元素的webview:

// Added empty click listener to allow click events to be passed through
view.addEventListener('click', function() {});
在我自己看来,我能够对包含的元素应用onclick,当我点击SVG时,onclick现在可以正确触发。我不必向小部件元素添加onclick,也不必在控制器的javascript中应用onclick

<View class="dashboardGridCell" onClick="goToPayBill">
    <View class="dashboardIcon">
        <Widget class="dashboardIconSvg" src="com.capnajax.vectorimage" svg="svg/circle-check.svg" style="svg/white-fill.css"/>
    </View>
    <Label class="dashboardIconLabel">Pay Bill</Label>
</View>

付账单

使用第一个答案中的方法通过JavaScript应用onclick不起作用。尽管此修复方法对我有效,但我愿意接受关于如何更好地启动onclick的建议。

谢谢您的帮助,伯特。我试过你的方法,但没用。因此,我进一步研究了小部件的源代码,发现它在某些情况下使用的是webview,而不是view。最后,我修改了小部件的源代码,在webview创建之后立即向其添加了一个空的click侦听器:
view.addEventListener('click',function(){})
以某种方式允许正确传递包含元素的侦听器。不过,我认为还有比这更好的解决方案。嗨,伯特,快速修改你的代码片段-你在警报后缺少一个右括号。再次感谢!瓦莱丽-很高兴听到你解决了问题。如果你有一个代码片段,你会有兴趣看看这个如何修复它。谢谢你捕捉到我的代码错误:)谢谢你的帮助,伯特。我试过你的方法,但没用。因此,我进一步研究了小部件的源代码,发现它在某些情况下使用的是webview,而不是view。最后,我修改了小部件的源代码,在webview创建之后立即向其添加了一个空的click侦听器:
view.addEventListener('click',function(){})
以某种方式允许正确传递包含元素的侦听器。不过,我认为还有比这更好的解决方案。嗨,伯特,快速修改你的代码片段-你在警报后缺少一个右括号。再次感谢!瓦莱丽-很高兴听到你解决了问题。如果你有一个代码片段,你会有兴趣看看这个如何修复它。感谢您捕获我的代码错误:)这篇关于iOS上的WebView的文档似乎很相关,但听起来iOS上的WebView在默认情况下应该将触摸事件传递给它们的父元素。我尝试更改小部件中的
willhandletouchs
设置,但没有效果。这篇关于iOS上WebView的文档似乎是相关的,但听起来iOS上的WebView在默认情况下应该将触摸事件传递给它们的父元素。我尝试更改小部件中的
willhandletouchs
设置,但没有效果。