2015-12-15 130 views
3

雖然沒有新的問題,所以當我將一個參數傳遞給一個函數時,我還沒有找到辦法做到這一點。目前我有這個這是在頁面加載錯誤觸發:如何防止頁面加載時的onchange觸發

$(document).on('change', 'select#advtracks', function() { 
     filterMarkers($(this).val()); 
}); 

我讀的答案是使用語法,而不parenthisis,防止調用它在頁面加載:

$("#advtracks").on('change', filterMarkers); 

但是我如何調用filterMarkers的說法:

$(this).val() 

我需要做這樣的錯誤的呼叫onload事件阻止我的jQuery /引導日期選擇器插件弗朗初始化負載。

與感謝

+0

嘗試連接事件偵聽器一旦頁面加載完成後 –

+0

怎麼會怎麼做,從jQuery的? –

回答

3

使用文檔的jQuery

的ready事件
$(function(){ 
    $(document).on('change', '#advtracks', function() { 
     filterMarkers(this.value); 
    }); 
}); 

$(document).ready()

夫婦的其他東西。

  1. 而不是使用select#advtracks選擇,你可以簡單地使用#advtracks
  2. $(this).val()可以this.value
+1

是的!非常感謝雙方解決了這個問題 - 會記住這一點,因爲它在後期很麻煩 - 甜! –

0

代替你並不需要傳遞參數$(this).val()明確。在事件期間調用外部函數時,觸發事件的元素的作用域在該外部函數內部自動可見。

$("#advtracks").on('change', filterMarkers); 

function filterMarkers() 
{ 
    alert($(this).val()); // gives the selected value 
} 

下面是一個例子:http://fiddle.jshell.net/brxu8w8m/2/

+0

事實上 - 我會記住這個事實,儘管我通常使用老派方法,因爲我經常做的不僅僅是抓住val() - 所以它更方便 - 在你的腰帶下有更多的知識仍然沒有錯 - 歡呼聲 –