gpt4 book ai didi

javascript - 从调用对话框的位置访问父项

转载 作者:行者123 更新时间:2023-12-02 20:14:01 26 4
gpt4 key购买 nike

我有表单元素的拖放功能。可拖动元素的结构是

<div class="tools">
<ul>
<li class="draggable" >
<div class="control">
<label>&nbsp;</label>
<input type="text" name="txt" value="" />
<span class="controlText"> Text Box </span>
<div class="delete" style="display:none"><sup>x</sup></div>
<div class="properties txtbox" style="display:none">Properties</div>
</div>
</li>

可放置区域有以下代码。元素添加在此

<div class="editor">
<ul class="sortable" id="leftColumn">
<li style="visibility:hidden" class="ui-state-default">Test</li>
</ul>
</div><!-- editor -->

删除后,属性将与该元素一起显示。现在,当我单击属性时,我会通过以下内容看到一个对话框

 $('.txtbox').live('click', function() {
//get the label
var label = $(this).parent().find('label').html();
$("#textbox_label").val(label);
$( "#dialog-textbox" ).dialog( "open" );
return false;
});

当对话框处于

<div id="dialog-textbox" title="Text Box Properties" style="display:none">
<p>This is the Text Box Properties Form.</p>
<form>
<fieldset>
<label for="textbox_label">Enter Label </label>
<input type="text" name="textbox_label" id="textbox_label" class="text ui-widget-content ui-corner-all" />
</fieldset>

现在我正在做的是,当用户在对话框表单中输入标签的值时,它应该直接在元素上更新,并且其标签应该是用户输入的内容

我正在做的更新代码结构是这样的

$("#dialog-textbox").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Apply": function(){
//code to update element goes here...
var label = $("#textbox_label").val()
alert("New Label "+label);
// here i need to access the item on which the user clicked
},
Cancel: function() {
$( this ).dialog( "close" );
}
}
});

我应该如何在此更新代码中添加一行,以便标签更新为用户输入的值???

最佳答案

您可以使用 .data() 存储单击的对象,如下所示:

   $('.txtbox').live('click', function() {
...
$( "#dialog-textbox" ).data("elem_clicked", $(this)); //This stores
$( "#dialog-textbox" ).dialog( "open" );
return false;
});

然后,您可以像这样检索它:

buttons: {
"Apply": function(){
...
var $elem_clicked = $("#dialog-textbox").data('elem_clicked'); //This retrieves
},
...
}

如您所见,我们使用 .data() 存储在对话框中单击的元素

希望这有帮助。干杯

关于javascript - 从调用对话框的位置访问父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6578331/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com