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>

そしてジャバスクリプト

   $(".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 がチェックボックスを再作成するなど、正しいターゲットを見つける必要があると思います。

EDIT 3 - ジェイソンのソリューションですが、ターゲットに関する他の貢献者からのコメントは役に立ちます。

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

2 に答える 2

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 に答える