2013-07-20 2 views
0
<a href="#" class="audiocontrol"></a> 
<a href="#" class="audiocontrol"></a> 
<a href="#" class="audiocontrol"></a> 
<a href="#" class="audiocontrol"></a> 

<script> 
    function playController(dataObj){ 
     alert(dataObj); 
    } 

    function playHandlers(){ 
     var dataObj = "stef"; 
     $('.audiocontrol').on('click', playController(dataObj)); 
    } 

    $(document).ready(playHandlers); 
</script> 

Этот бит кода отключается при загрузке страницы, нажимаю ли я объект или нет. Зачем?Javascript - On ('Click') - Ошибка - Находясь на странице Загрузка

ответ

3

Что вы хотите:

function playController(dataObj){ 
    alert(dataObj); 
} 

function playHandlers(){ 
    var dataObj = "stef"; 
    $('.audiocontrol').on('click', function() { playController(dataObj); }); 
} 

$(document).ready(playHandlers); 

Путь ваш код был написан, он звонит playController, когда вы его регистрации в .on вызова.

jsfiddle

3

вы вызываете функцию, следовательно, проходящее результат playController. Вы можете сделать что-то подобное.

function playHandlers(){ 
    var dataObj = "stef"; 

    $('.audiocontrol').on('click', function() { 
     playController(dataObj); 
    }); 
} 
1

Это будет работать:
(демо here)

function playController(dataObj) { 
    alert(dataObj); 
} 

function playHandlers() { 
    var dataObj = "stef"; 
    $('.audiocontrol').on('click', function() { 
    playController(dataObj) 
    }); 
} 
$(document).ready(playHandlers); 

Это загрузит ваш код, когда страница загружается и вызовите функцию playHandlers(). Вы называли это напрямую, потому что вы забыли добавить function(){} в вызов on/click.