0

尝试了这个最新的一组代码的一些组合。简而言之,我将我的 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!');
});

谢谢

人族

编辑 - 最后使用这个例子 -点击事件没有在 jQuery Mobile 中触发?

EDIT2 - http://forum.jquery.com/topic/calling-a-script-when-button-clicked添加了 $(document).ready 所以现在 $(document).ready(".document.userdetails.signal") .click(function(e){........ 当我打开应用程序时似乎注意到了变化 - 我想我现在需要找到正确的目标,因为 Jquery 重新创建了复选框等。

编辑 3 - Jasons 解决方案,尽管目标周围其他贡献者的评论很有用。

$(function() {
   $("#userdetails").on("change","#signal",function(eventObj) {
        //do code here. 
        eventObj.preventDefault();
   });
});
4

2 回答 2

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();
    });
});
于 2012-06-06T23:12:36.547 回答
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();

        });
    });
于 2012-06-06T23:23:59.413 回答