2013-11-21 65 views
0

我寫了一個wordpress插件,打印主流,當用戶點擊主流時,它切換屬於主流的主題。但是,它適用於前端。javascript click event does not respond

我想在wordpress後端實現這一點。 除了切換功能外,每件事情都可以使用。

我已經在WordPress的管理頭文件中包含jquery。

<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script> 


<script type="text/javascript"> 
    $(document).ready(function() { 
     // dynamically handlling main streams and their subjects 
     // when a main stream is selected, it is sub categories(subjects) div will 
     // be toggle. 
     //  alert(subClicked); 
     $(".main_stream").click(function() { 
      var subClicked = $(this).attr('id'); 
      // $(".stream").hide(); 
    //     alert(subClicked); 
         console.log("value is "+subClicked); 
      $("#" + subClicked + "sub").toggle(); 
     }); 
    }); 
</script> 

我嘗試用firbug調試,雖然當我點擊的主流,它並不去$(".main_stream").click(function()。沒有什麼改變。

我錯過了什麼,我是新的WordPress的。我不知道jQuery是如何處理WordPress的管理面板。任何人都可以給我一個提示嗎?的

部分生成的HTML

<div id="Statisticssub" class="hide" "="" style="padding-left: 20px;"> 
<input type="checkbox" id="Technology_Solutions" value="" class="main_stream" checked="checked"/> 
Technology Solutions 
<br/> 
<div id="Technology_Solutionssub" class="hide" style="display: block;" "=""> 
<div style="width: 350px; height: 30px; padding-top: 5px;"> 
<div style="width: 350px; height: 20px; padding-top: 5px;"> 
<div style="width: 260px; float: left; padding-top: 5px;"> 
<input type="checkbox" id="16" name="check_subjects[]"/> 
C# 
</div> 
<div style="width: 75px; height: 10px; float: left; padding-right: 15px;"> 
</div> 
<div style="width: 350px; height: 20px; padding-top: 5px;"> 
<div style="width: 260px; float: left; padding-top: 5px;"> 
<div style="width: 75px; height: 10px; float: left; padding-right: 15px;"> 
</div> 
+0

爲什麼包含'jQuery'的兩個版本。只保留其中一個 –

+0

我刪除了'' – wordpressm

+0

是'.main_stream'動態添加的嗎? –

回答

0

當我添加的JavaScript生成回回後端,問題得到解決。我不知道爲什麼在頭中的JavaScript被丟棄之前。

1

我不能肯定,但它聽起來像當點擊事件處理程序註冊類不存在,即使你內把它包doc.ready塊。您可以嘗試改變從一個.click處理程序簽名.on,而在原來的選擇針對輸入的父元素,並在處理程序的main_stream類:

$("#Statisticssub").on('click', '.main_stream', function() { 
      var subClicked = $(this).attr('id'); 
      // $(".stream").hide(); 
    //     alert(subClicked); 
         console.log("value is "+subClicked); 
      $("#" + subClicked + "sub").toggle(); 
     }); 

.click尋找你在瞄準元素選擇器,如果它不存在,則處理程序不能附加。 .on調用委託此工作,並允許事件觸發以後可能添加的內容。

更多在這裏閱讀:http://api.jquery.com/on/