2017-09-05 91 views
1

所以我有一個解析頁面並創建一個選擇框並用選項填充它的用戶腳本。如何每次調用函數onChange on select在用戶腳本上觸發?

現在我想在用戶更改選擇框中的選定索引時調用腳本。不幸的是,它看起來像userscript只運行一次,將不能讀取選擇的未來更改。

我曾嘗試:?

1)

$('#selectBox').on('change', function() 
{...} 

(只運行一次)

2)注入通過的insertBefore函數 「function_to_call」 與<script>標籤和格式化我的選擇線路這個:

<select onChange="function_to_call.call(this,event)">...</select> 

它不起作用,說功能ion_to_call未定義

3)此函數:https://gist.github.com/nylen/6234717再次注入我自己的函數,但是傳遞給參數的所有內容都是未定義的。

用戶腳本甚至有可能連續監聽事件,還是僅僅是一次執行?

+0

你有一個名爲「function_to_call」的函數嗎? – Max

+0

如果你爲這個 – Vatsal

回答

1
$('#selectBox').on('change', function() 
{...}) 

,爲什麼只運行一次的原因是因爲一旦editted連接到DOM元素的事件監聽器會消失(通過的insertBefore改變的innerHTML等)

所以使用

$(document).on('change','#selectBox',function() 
{...}) 

這將工作

+0

創建一個小提琴會更好,謝謝!這解決了我的問題。 – MDuh

+0

歡迎您愉快編碼 –

相關問題