试了几个这样的组合,附上最新的代码集。简而言之,我将我的javascript从一个单独的文件运行到html,而我想要做的就是设置一些代码,以便在更改复选框时运行一些逻辑来监视它。
尝试通过.document.userdetails.signal观看,#signal(为此添加了类),只是简单的信号。
我很感激一些指导,因为我在同一个html文件中查看了很多例子,所以我认为这就是我试图解决按钮的方式。
<form id="userdetails" name="userdetails" action="javascript: savesettings()" >
<p>
<p>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup" data-type="horizontal">
<input name="signal" type="checkbox" class="custom" id="signal" value="1" checked="true" />
<label class="signal" for="signal">Traffic Data</label>
</legend>
</div>
和Javascript
$(".document.userdetails.signal").click(function(e){
e.preventDefault();
alert('signal clicked!');
});
由于
人族
编辑 - 最后使用此示例 - Click event not firing in jQuery Mobile?
EDIT2 - http://forum.jquery.com/topic/calling-a-script-when-button-clicked添加$(文件).ready所以现在$(document).ready(“。document.userdetails.signal”)。click(function(e){.......当我打开应用程序时似乎注意到了变化 - 我想我现在需要找到正确的目标,因为Jquery会重新创建复选框等。
编辑3 - Jasons解决方案虽然目标周围的其他贡献者的评论很有用。
$(function() {
$("#userdetails").on("change","#signal",function(eventObj) {
//do code here.
eventObj.preventDefault();
});
});
答案 0 :(得分:1)
$(".document.userdetails.signal")
正在寻找包含class="document userdetails signal"
等三个类的元素。
尝试$("#signal")
:
$(function() { // shorthand for doc ready
$(document).on('click','#signal',function(e) { // use .on in jquery 1.7
alert('hello');
e.preventDefault();
});
});
答案 1 :(得分:1)
click
事件适用于复选框,但通常如果您想在更改时运行javascript,请改用change
事件。我已经包含了一个使用change
的示例,如果您要复制粘贴选择框或文本字段的代码
$(function() {
$("#userdetails").on("change","#signal",function(eventObj) {
//do code here.
eventObj.preventDefault();
});
});
..编辑以回应评论..
$(function () {
$("#trafficdata").toggle(function () {
alert('First handler for .toggle() called.');
}, function () {
alert('Second handler for .toggle() called.');
});
$("#userdetails").on("click", "#signal", function (eventObj) {
eventObj.preventDefault();
$("#trafficdata").click();
});
});