【问题标题】:wordpress jquery missing : after property idwordpress jquery 缺失:在属性 id 之后
【发布时间】:2010-11-28 04:37:00
【问题描述】:

我正在尝试使用 jQuery 和 Wordpress 制作一个简单的手风琴菜单。

<script type="text/javascript" language="javascript">

var $j = jQuery.noConflict();


$j("#leftmenupane p.leftmenu_head").click(function(
{
    $j(this).css({'background-image' : 'url(down.png)'}).next("div.leftmenu_body").slideToggle(300).siblings("div.leftmenu_body").slideUp("slow");
    $j(this).siblings().css({'background-image' : 'url(left.png)'});
});

</script>

<div id="leftmenupane" class="leftmenu_list">
  <p class="leftmenu_head">Header-1</p>
    <div class="leftmenu_body">
        <a href="#">Link-1</a>
        <a href="#">Link-2</a>
        <a href="#">Link-3</a>
        <a href="#">Link-4</a>
    </div>
  <p class="leftmenu_head">Header-2</p>
    <div class="leftmenu_body">
        <a href="#">Link-1</a>
        <a href="#">Link-2</a>
        <a href="#">Link-3</a>
    </div>
  <p class="leftmenu_head">Header-3</p>
    <div class="leftmenu_body">
        <a href="#">Link-1</a>
   </div>
</div>

它实际上是一些教程的示例。但我无法让它工作。我在这里感觉到一些愚蠢的错误,但我找不到它。我得到的只是“$j(this).css({'background-image': 'url(down. ... ".

请帮忙。

【问题讨论】:

    标签: jquery wordpress


    【解决方案1】:

    尝试将冒号更改为逗号并去掉你的漩涡括号,如下所示:

    $j(this).css('background-image', 'url(down.png)');
    $j(this).siblings().css('background-image', 'url(left.png)');
    

    【讨论】:

    • 感谢您的快速回复,但它再次导致同样的错误。
    【解决方案2】:

    出于好奇,尝试将$j = jQuery.noConflict(); 更改为j = jQuery.noConflict();

    我之所以这么说,是因为您看到的错误通常是在编译时变量不可用时出现的。我想知道定义 $j 是否几乎否定了无冲突或其他东西。试试看吧。

    【讨论】:

    • 尝试j = jQuery.noConflict(); 并将 j 更改为一些随机变量名称 (jhkg) 以确保它不会与其他变量冲突但没有成功。但是当我尝试:$j(this).siblings().css( 'background-image' , 'url(left.png)'); 在 Firebug 的 javaScript 控制台中它是 SyntaxError: unterminated string literal 和简单的 $j 返回:ReferenceError: $j is not defined source=with(_FirebugCommandLine){$j\n}; 看起来 $j 没有初始化或什么的。
    • 在你执行了 j = jQuery.noConflict(); 之后,你就只能在其他地方使用 j。 (不要再使用 $j 了,因为你从来没有声明过它)
    【解决方案3】:

    我把代码改成:

    var $j = jQuery.noConflict();
    
    $j(function() {
    
     $j("#leftmenupane p.leftmenu_head").click(function()
     {
      $j(this).css('background-image' , 'url(down.png)').next("div.leftmenu_body").slideToggle(300).siblings("div.leftmenu_body").slideUp("slow");
      $j(this).siblings().css( 'background-image' , 'url(left.png)');
     });
    
    });
    

    它现在可以正常工作了。无论如何,谢谢你们,因为你们把我推向了正确的方向:)

    【讨论】:

      【解决方案4】:

      这可能是语法错误。引用上面的代码行...

      $j("#leftmenupane p.leftmenu_head").click(function(
      

      看起来你没有在函数声明之后关闭括号。试试这个...

      $j("#leftmenupane p.leftmenu_head").click(function()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        • 2011-04-13
        • 2018-04-24
        • 1970-01-01
        • 2011-10-07
        • 1970-01-01
        相关资源
        最近更新 更多