有什麼方法可以重寫Titanium中的Widget元素的click事件偵聽器?重寫小部件的單擊事件偵聽器 - Appcelerator Titanium
我有一個小部件,並且在我使用該小部件的控制器中,我需要對小部件的單擊操作執行一些其他操作,而不是在小部件中定義的操作。
有什麼辦法可以實現它嗎?
TIA :)
有什麼方法可以重寫Titanium中的Widget元素的click事件偵聽器?重寫小部件的單擊事件偵聽器 - Appcelerator Titanium
我有一個小部件,並且在我使用該小部件的控制器中,我需要對小部件的單擊操作執行一些其他操作,而不是在小部件中定義的操作。
有什麼辦法可以實現它嗎?
TIA :)
要覆蓋一個給定的功能,我會導出setter函數在widget:
構建窗口小部件,你將永遠做 widget.xml:
<Alloy>
<Button onClick="doClick" title="Hello World!" />
</Alloy>
出口setter函數$.overrideListener
能夠從小部件外部覆蓋clickHandler
小部件 小部件。JS:
function doDefaultStuff(e){
//Do default stuff
}
var clickHandler = doDefaultStuff
function doClick(e){
clickHandler(e)
}
$.overrideListener = function(callback){
clickHandler = callback
}
INDEX.XML:
<Alloy>
<Window>
<Widget id="widget_id" src="com.widget.somewidget"></Widget>
</Window>
</Alloy>
覆蓋的clickHandler
如果你希望做一些不同比的默認行爲 index.js:
function doCustomStuff(e){
//Do Custom Stuff
}
$.widget_id.overrideListener(doCustomStuff)
是的,當然你可以覆寫任何你想要的。
採用合金中,您將使用經典模式由ID參數&訪問插件,你可以簡單的使用控件變量名。
假設你有一個小部件com.widget.somewidget在XML文件爲:
INDEX.XML
<Alloy>
<Window>
<Widget id="widget_id" src="com.widget.somewidget"></Widget>
</Window>
</Alloy>
部件.xml
<Alloy>
<Button id="widget_button" title="Hello World!" />
</Alloy>
在widget.js,你現在將導入您要覆蓋這樣的點擊事件元素:
$.exportedButtonId = $.widget_button;
最後,您可以覆蓋像這樣的按鈕單擊事件:
個index.js
var widgetButton = $.widget_id.exportedButtonId;
widgetButton.addEventListener('click', function (e){});
這是你如何能更靈活地利用小部件非常簡單的例子,但實施是無止境的,取決於應用需求。所以祝你好運!
謝謝,Prashant! :) – Porwal
謝謝! :) – Porwal