如何编写依赖于动态选择器的函数?

时间:2012-06-01 03:04:55

标签: javascript jquery jquery-ui

我正在编写一个函数来动态加载带有内容的jQuery UI手册。我知道(想)AJAX部分可以工作,因为我从另一个工作的AJAX加载器中取出它,但整个功能不起作用。

代码:

    function load_leaf(link){
    var link = link;
    $.ajax({
            cache : false,
            type : 'POST',
            async: false,
            url : 'includes/'+ link +'.php?'+ new Date().getTime(),
            dataType : 'text',
            data: {
                owner : '$user_id'
            },
            success: function(msg){
                $("#" + link).html(msg);
                console.log('Can\'t see me in Chrome, but ok in firefox !')
            },
            error: function() {
                console.log($.makeArray(arguments));
            },
            complete: function() {
                console.log($.makeArray(arguments));
            }

    });
};
$(function(){
    $('.accordian').click(function(){
        var link = this.getAttribute("link");
        load_leaf(link);
    });
});     

无论出于何种原因,这都行不通。断点似乎是这条线 $("#" + link).html(msg);
特别是选择器,作为硬编码选择器完美地工作。链接变量已正确填充我知道这一点,因为我可以正确地提醒值。链接不是问题,因为我用一个简单的添加类替换了整个ajax函数,它仍然无法工作,它也在选择器中断开。

编辑:
这是由php打印的div:

<h3 class="accordian" id="'.$tab_id.'" link="'.$tab_link.'" >
 <a href="#">'.$tab_name.'</a>
</h3>
<div id="'.$tab_link.'"><p>Hi</p></div>

第一个的html是:

 <h3 class="accordian" id="accordian_manage.php" link="accordian_manage.php" ><a href="#">Manage Images</a></h3><div id="accordian_manage.php"><p>Hi</p></div>

2 个答案:

答案 0 :(得分:1)

您的ID中包含句点.,jQuery将其解释为链式类选择器。

您可以更改链接/ ID,也可以使用此黑客:

$("[id='" + link + "']");

<强> Live demo

答案 1 :(得分:0)

我猜你的问题是Jquery没有找到div加载msg ..Post手风琴div以便我可以给你正确的选择器