Do you have forceIFrame set to false?  If so, the iFrame doesn't exist, so 
the selector doesn't find one.

Also, it seems that when working with SVG (as opposed to VML, which is what 
the charts use in IE < 9), you need to set the click handler on the 'svg' 
element, not the div, so use .find('svg') when the user is not using IE < 
9, ie:

if ($.browser.msie && $.browser.version < 9) {
    var location_chart_element = $('#location_chart iframe').contents().find
('div');
}
else {
    var location_chart_element = $('#location_chart iframe').contents().find
('svg');
}​

On Monday, June 25, 2012 6:39:32 PM UTC-4, novito wrote:
>
> Tried doing this in Chrome:
>
>  google.visualization.events.addListener(chart, 'ready', function() {
>     var location_chart_element = $('#location_chart 
> iframe').contents().find('div');
>       $(location_chart_element).click(function (event){
> alert('hello world');
>       })
>     });
>
>
> And even though I can see location_chart_element in the console log as an 
> array of divs, the listener is not being triggered.
>
> I don't know if I am missing something compared to what you suggested, but 
> I have tried to isolate the chart in a single page and is happening the 
> same.  Do you see what might I be wrong?
>
> On Monday, June 25, 2012 1:16:00 PM UTC-7, asgallant wrote:
>>
>> That should work, but I can see that it doesn't in IE.  This does:
>>
>> $('#location_chart iframe').contents().find('div').click(function (event) 
>> {
>>     alert('hello world');
>> });
>>
>> On Monday, June 25, 2012 4:05:09 PM UTC-4, novito wrote:
>>>
>>> I see the element in the console. I have even make sure the chart is 
>>> ready, but it seems the click even is not firing.  Have you been able to 
>>> reproduce this? 
>>>
>>> On Monday, June 25, 2012 12:46:33 PM UTC-7, asgallant wrote:
>>>>
>>>> Try this:
>>>>
>>>> $('#location_chart 
>>>> iframe').contents().find('#chartArea').click(function (event) {
>>>>     alert('hello world');
>>>> });
>>>>
>>>> On Monday, June 25, 2012 3:28:45 PM UTC-4, novito wrote:
>>>>>
>>>>> I have tried doing this:
>>>>>
>>>>>  var iframeDoc = $('#location_chart iframe').contents().get(0);
>>>>>      console.log(iframeDoc);
>>>>>      $(iframeDoc).bind('click', function(event ){
>>>>>       alert('hello world');
>>>>>      });
>>>>>
>>>>> But it seems is not binding correctly... Would this be a good approach?
>>>>>
>>>>> On Monday, June 25, 2012 11:56:52 AM UTC-7, novito wrote:
>>>>>>
>>>>>> I have rendered some charts with the forceIframe attribute set to 
>>>>>> false, so the chart is rendered as SVG and I can add a listener whenever 
>>>>>> that SVG is clicked.  I do that because with the Iframe there is no way 
>>>>>> that I can listen for a click on all the chart (not just the elements) 
>>>>>> container.
>>>>>>
>>>>>> However, when trying to use this attribute and rendering the charts 
>>>>>> on IE8, the chart is rendered within an Iframe, and therefore when I do 
>>>>>> this:
>>>>>>
>>>>>> google.visualization.events.addListener(chart, 'ready', function() {
>>>>>>     
>>>>>> document.getElementById('location_chart').getElementsByTagName('svg')[0].onclick
>>>>>>  
>>>>>> = function() {
>>>>>>       drawCenteredChart();
>>>>>>     };
>>>>>>   });
>>>>>>
>>>>>> It breaks, because there is no SVG element.  So my question is:  What 
>>>>>> would be a good solution for this?  Why is not rendering the SVG?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-visualization-api/-/zo6dgsIM8p0J.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to