2013-07-20 124 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') - Error - 打開頁面加載

回答

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(){}