2013-07-09 70 views
0

我要提醒,當它改變時,開關的價值,然而,一些長碼鏈出來,在警告框快速切換值開關不靈

HTML

<div align="right"> 
     <select name="switch" id="alleventsswitch" data-role="slider" data-mini="true"> 
      <option value="off">No Past</option> 
      <option value="on">Past</option> 
     </select> 
</div> 

JAVASCRIPT

$('#alleventsswitch').change(function() { 

    alert($('select').slider().val); 

}); 

顯然.VAL不起作用

回答

1

所有你需要的是這樣的:

$('#alleventsswitch').change(function() { 
    console.log(this.value); 
}); 

Demo

處理程序this內部表示選擇字元素本身,你可以訪問它的價值this.value。通過執行$('select').slider(),您不必要地調用不需要的滑塊的構造函數插件。還可以使用console.log而不是alert,特別是測試易受鼠標移動影響的滑塊。同樣,通過執行$('select').val(),您最終可能會獲取DOM元素之前可能存在的另一個選擇的值,您希望在處理程序中使用this作爲目標。

1

這應該工作:

$('#alleventsswitch').change(function() { 
    alert($('select').val()); 
}); 

工作的jsfiddle:

如果要專門選擇與data-role="slider"select元素,你可以使用這個:

$('#alleventsswitch').change(function() { 
    alert($('select[data-role="slider"]').val()); 
}); 

工作的jsfiddle:

希望這有助於。

+0

謝謝!發現其他答案更簡單,但:P – nshah

+1

@nshah謝謝 - PSL做了很好的解釋! –