2014-04-19 5 views
1

Я не могу получить самые основные события jqplot click в моем приложении rails 3.1. Я хочу поймать любой щелчок на моем графике. Я создал простую тестовую страницу, которая до сих пор не работает:jqplot click events not firing

<head> 
    <%= javascript_include_tag "jquery"%> 
    <%= javascript_include_tag "jquery.jqplot.min.js"%> 
    <%= stylesheet_link_tag "jquery.jqplot.min.css" %> 
</head> 
<body> 
<p>Chart test</p> 
<div id='chart1'></div> 
</body> 
<script> 
$(document).ready(function(){ 
    var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]); 

    function myClickHandler(ev, gridpos, datapos, neighbor, plot) { 
    alert('you have triggered click action'); 
    } 
    $.jqplot.eventListenerHooks.push(['jqplotClick', myClickHandler]); 

}); 
</script> 

Ничего не происходит, когда я нажимаю на график. Я пробовал много разных подходов.

Я использую версию 3.1.0 из jquery-rails gem (версия 1.11 jquery) и версию 1.0.8r1250 из jqplot.

Я нахожусь в точке, где я даже не знаю, что еще нужно сделать для устранения неполадок. Любая помощь приветствуется.

ответ

1

Решение было настроить eventListenerHooks перед созданием участка:

<script> 
$(document).ready(function(){ 


    function myClickHandler(ev, gridpos, datapos, neighbor, plot) { 
    alert('you have triggered click action'); 
    } 
    $.jqplot.eventListenerHooks.push(['jqplotClick', myClickHandler]); 

    var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]); //moved 


}); 
</script> 
1

почему бы не использовать предопределённые обработчик событий JQuery? Он не требует создания eventListenerHook ...

$.jqplot('chart1',...); 
$('#chart1').bind('jqplotClick', function(ev, gridpos, datapos, neighbor, plot) { 
    //handle jqplotClick 
});