您可以執行以下操作使用拉斐爾的點擊()函數,檢查DEMO:
這個簡單的代碼使用click()
功能:
var paper = Raphael("area", 400, 400);
var r = paper.rect(100, 50, 80, 60, 10).attr({fill: 'yellow', stroke: 'red'}),
c = paper.circle(200, 200, 50).attr({fill: 'yellow', stroke: 'red'});
r.click(function() {
// add your console.log if needed
r.attr({fill: 'red', stroke: 'yellow', "stroke-width": 2});
c.attr({fill: 'yellow', stroke: 'red'});
});
c.click(function() {
c.attr({fill: 'red', stroke: 'yellow', "stroke-width": 2});
r.attr({fill: 'yellow', stroke: 'red'});
});
現在,如果你想使用this
,那麼請記住,它只適用於在元素創建範圍內使用它。您可以手動爲您的所有元素添加此代碼,也可以創建幾個數組以保留元素。然後如果你知道你想申請的索引click()
,只需撥打arr[ind].click()
即可。
編輯:看看這個demo,我用過這個。
問題在於,形狀是動態繪製的。這意味着我有,可以說有10個形狀具有相同的'var rect = paper.rect(100,50,80,60,10);'這意味着只有最後我繪製才能獲得點擊事件。 – supersize
我用'this'添加了新的DEMO,上面寫着 – Brian
,非常感謝,這對我很有幫助! – supersize