2012-06-06 40 views
0

嘗試了幾次組合這個最新的一組代碼附加。總之,我運行我的JavaScript從一個單獨的文件到HTML,我試圖做的是設置一些代碼來監視當複選框更改爲運行一些邏輯。Jquery移動點擊事件不起作用 - DOM Prob?

嘗試通過.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增加$(文件)。就緒所以現在$(document).ready(「。document.userdetai點擊(函數(e){........似乎注意到當我打開應用時發生了變化 - 我想我現在需要找到正確的目標,因爲jquery重新創建了複選框等。

編輯3 - Jasons解決方案,儘管目標周圍的其他貢獻者的評論是有用的。

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

回答

1

click事件將爲複選框工作,但一般來說,如果你想在改變運行JavaScript,使用change事件來代替。香港專業教育學院包括使用change櫃面你想將代碼複製粘貼了一個選擇框或文本框

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

..edit迴應置評

$(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(); 

     }); 
    }); 
+0

賈森 - 工作感謝....出於興趣(和允許以這種方式使用切換 - 即$(function(){(「#userdetails」)。on(「toggle」,「#trafficdata」,funct ion(eventObj){EventObj.preventDefault(); \t \t alert('調用.toggle()的第一個處理程序。'); },function(){ \t e.preventDefault(); (''調用.toggle()的第二個處理程序')。 \t \t }); }); - 有一個快速去,沒有喜悅,所以我假設有一個有限的事件用於你建議的格式? –

+0

我已經用我認爲你想要做的事更新了代碼。基本上我已經定義了交通數據的切換功能,當點擊userdetails時,切換功能在不同的div上執行 –

+0

雖然它不是一個很好的例子,但是我沒有足夠的關於你想要做什麼的信息,如果你可以讓一個jsfiddle我可以幫你。 –

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

反引號的例子..'\''格式直列代碼,'Ctrl + K'格式的代碼塊:) –

+0

謝謝你Frederic :) –

+0

謝謝兩個爲您的反饋....傑森斯的例子工作.... –