2012-09-26 148 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