为什么我的Jquery功能不起作用?

时间:2011-03-28 15:05:43

标签: jquery jquery-plugins

我有这个jquery函数---

function domail_slide_settings(obj)
{
  $("div#" + obj).toggle();
}

当我像这样执行它时

<a href="#" onclick="domail_slide_settings('toggle')" id="toggle" >Toggle</a>

它没有切换!有没有人对此有任何想法。请让我知道,这将是一个很大的帮助。

提前致谢!

5 个答案:

答案 0 :(得分:4)

尝试

  $("#" + obj).toggle();

并将其指向&lt; div>元素,而不是锚

答案 1 :(得分:4)

ID属性必须在HTML文档中是唯一的,否则您将遇到不必要的副作用。从它的外观来看,带有点击处理程序的<a>元素与您要切换的id元素具有相同的div#toggle属性。在某些浏览器中,这几乎肯定会成为一个问题。

尝试将<a>元素的ID更改为唯一:

<a href="#" onclick="domail_slide_settings('toggle')" id="toggle_div" >Toggle</a>

答案 2 :(得分:1)

请改为尝试:

<a href="#" id="toggle">Toggle</a>
<div id="div_toggle"></div>

和此:

$(function() {
    $("#toggle").click(function(e){
        e.preventDefault();
        $("#div_" + this.id).toggle();
        // or $(this).next().toggle(); depending on your markup
    });
});

我敢打赌,您为<a>代码和<div>代码使用了相同的ID,不应该这样做。

答案 3 :(得分:0)

或者你可以尝试

$('#' + obj).parent().toggle();

^^

答案 4 :(得分:0)

字符串连接的结果 - “div#toggle” - 正在选择一个带有id切换的div,而不是你的锚。

我认为你的意思是选择它:

$("#toggle").parent()

或者,如果你真的想要锚本身,请使用:

$("#toggle")

在任何情况下,由于你的函数是一个onclick处理程序(虽然直接通过浏览器,不使用jQuery事件api),你也可以这样做:

function domail_slide_settings() {
    $(this).parent().toggle()
    // or this.toggle();
}