Marco,
Because of the way the different pieces of code are scoped in the engine, the exact scenario you describe isn't possible. However, you could do something like this:
1) Create the data element(s) you want. Instead of referencing the target object directly, reference a copy of it (let's use "myTarget" in this example). We'll want to scope myTarget at the global level so it can be accessed anywhere. So, your data element might return something like "window.myTarget.href" if you wanted to return the URL of whatever link triggered a particular event based rule.
2) In your rules where you want to use these data elements, add a Custom criteria that contains the following:
var myTarget = this.target; return true;
This will make the "myTarget" object available globally, which means your data element(s) will be able to see it.
3) Use the data element normally within the rule UI using the %DataElementName% syntax.
So it does require a few more steps, but this would accomplish what you want. Hope this helps!
Best,
Shawn