ID作为jquery </div>中<div>的事件参数

时间:2012-01-30 13:32:53

标签: javascript html jquery-ui jquery

如何在函数中传递参数来创建ID?例如,在下面我想将ID_Name视为<div> ID。以下不起作用。只是为了表明我的意图。

function create_drags(ID_Name) {
    $("BODY").append($('<div ID="ID_Name" class="ui-widget-content"><p>Draggable </p></div>'));
    $(ID_Name).draggable();
}

如何实现这一目标?

6 个答案:

答案 0 :(得分:2)

<强>更新 这是一个让你尝试的小提琴。 http://jsfiddle.net/etdKL/

字符串连接。
有两个问题 分配Id时的第一个 而不是ID="ID_Name"您键入ID="'+ID_Name+'"然后JavaScript会将ID_Name评估为变量而不是字符串文字。

$("BODY").append($('<div ID="'+ID_Name+'" ...'

第二个是你需要在选择器中使用#来告诉JQuery使用ID选择器。

$(ID_Name) --> $('#' +ID_Name)

答案 1 :(得分:2)

function create_drags(ID_Name){
    $("BODY").append($('<div ID="' + ID_Name  + '" class="ui-widget-content"><p>Draggable</p></div>'));
    $('#' + ID_Name).draggable();
}

选择新添加的div时,还有一个'#'缺失。

答案 2 :(得分:1)

您可以使用字符串连接来包含ID_Name的值,也可以使用jQuery创建单独的DOM元素,并在其上设置您想要的属性/属性,以及调用任何其他jQuery函数。代码看起来像这样:

function create_drags(ID_Name) {
    var $div = $('<div/>').attr('id', ID_Name).addClass('ui-widget-content').draggable();
    $div.append('<p>Draggable </p>');
    $("BODY").append($div);
}

答案 3 :(得分:1)

您可以使用自定义属性传递变量

<div id="div_id" custom-attr="other_id"></div>

然后用jQuery获取

$("#div_id").attr("custom-attr");

答案 4 :(得分:1)

function create_drags(ID_Name) {
$("BODY").append(
    $('<div ID="'+ID_Name+'" class= "ui-widget-content"><p>Draggable </p></div>')
);
$(ID_Name).draggable();
}

或类似jQuery的方式:

function create_drags(ID_Name) {
    $("body").append(function(){
    var $div = $("<div/>");
    $div.attr("id", ID_NAME);
    $div.addClass("ui-widget-content");
    $div.append("<p>Draggable</p>");

    $div.draggable();
    return $div;
    });
}

答案 5 :(得分:1)

这将解决问题并避免在刚刚创建的元素上使用选择器:

function create_drags(ID_Name) {
  $('<div id="'+ ID_Name +'" class="ui-widget-content"><p>Draggable</p></div>')
    .appendTo('body')
    .draggable();
}