javascript点击事件没有响应

时间:2013-11-21 14:19:58

标签: javascript jquery wordpress

我已经编写了一个wordpress插件,我在其中打印主流,当用户点击主流时,它切换属于主流的主题。但是,它适用于前端。

我也希望在wordpress后端实现这一点。 除了切换功能外,每件事都有效。

我在wordpress的admin-header文件中包含了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的新手。我不确定如何在wordpress管理面板中处理jquery。任何人都可以给我一个提示吗?

生成的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>

2 个答案:

答案 0 :(得分:1)

我无法确定,但是当注册了click的事件处理程序时,听起来似乎该类不存在,即使您已将其包装在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会在Selector中查找您要定位的元素,如果它不在那里,则处理程序无法附加。 .on调用委托此工作,并允许事件触发可能稍后添加的内容。

在此处阅读更多内容:http://api.jquery.com/on/

答案 1 :(得分:0)

当我从后端添加javascript以生成时,问题就解决了。我不确定为什么在标题中的javascript被丢弃之前。