2013-11-21 67 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/