2012-09-26 206 views
0

我試圖做一個非常簡單的事情:與jQuery Mobile 1.1.1框架,我想禁用一個字段時,切換翻轉是「手動」。如何在切換觸發器更改時觸發事件?

下面是HTML:

<div data-role="fieldcontain"> 
    <fieldset data-role="controlgroup"> 
     <label for="toggleswitch">       
     </label> 
     <select name="toggleswitch" id="toggleswitch" data-theme="b" data-role="slider"> 
      <option value="off">gps</option> 
      <option value="on">manual</option> 
     </select> 
    </fieldset> 
</div> 

,這裏是我的JavaScript:

$('#toggleswitch').change(function(){ 
    console.log("toggle"); 
}); 

此刻,我甚至不能在控制檯看到 「切換」 字。我認爲改變方法甚至不會觸發,但這是我在網上的例子中發現的。

編輯 -我在這裏複製了一個錯誤的例子:我實際測試的代碼具有相同的「切換開關」ID。代碼現在按我在記事本++上的方式進行編輯。

+0

由於ID是唯一的,所以不需要說'selector#toggleswitch'。 '#切換開關'就足夠了。而現在我看到這已經在xdazz的答案中提到了!哎呀! – 11684

+1

@ 11684,是的,ID是真正唯一的,就字而言:P – phant0m

回答

1

你把代碼放在dom ready回調中嗎?

$(function() { 
    $('#toggleswitch').change(function(){ console.log("toggle"); }); 
}); 

PS:如果您使用的ID選擇,無需指定元素類型。

編輯:

還要注意你的HTML作爲ID使用toggleswitch3,而在使用JavaScript toggleswitch

+0

我試圖將代碼放在dom就緒回調中,但它不起作用。 – MaVVamaldo

1

您選擇元素上的idtoggleswitch3,但在您使用的JavaScript代碼中爲toggleswitch。這些名稱需要在HTML和JavaScript中匹配,否則它無法工作。

+0

是的,我犯了一個錯誤,將我的代碼複製到問題中。我正在嘗試的代碼是上面問題中編輯的代碼。 – MaVVamaldo

+0

@maVVamaldo你可以在jsFiddle上提供一個可測試的例子嗎? – phant0m

+0

感謝您的關注,我發現問題在於我包含的腳本的順序。我很新的JavaScript,我仍然缺少一些基本知識。 – MaVVamaldo