【发布时间】:2018-08-06 09:54:46
【问题描述】:
我正在尝试编写一个 Jquery 函数,将任何选定的复选框从一个 div 移动到另一个。但是,我不确定如何将每个复选框的页面 ID 从 HTML 模板代码传递给 JQuery。有没有人有任何想法?
<fieldset>
<h3>Pages</h3>
<div class="fieldset_elements">
<div id="pagecontainer">
<div class="selectpagebox" id="pagebox1">
<h4>Available Pages</h4>
{foreach from=$pagelist item=page}
<div class="pageSelection">
<input type="checkbox" id="{$page.id}"
value="{$page.id}"
{if $page.id eq $selectedPage}
selected="true"
{/if}" />
{$page.page_name}
</div>
{/foreach}
</div>
<div class="selectpagebox" id="pagebox2">
<h4>Selected Pages</h4>
{foreach from=$selectedPage item=page}
<span id="page" class="pageSelection">
<option value="{$page.id}"
{if $page.id eq $selectedPage}
selected="true"
{/if}">
{$page.page_name}
</option>
</span>
{/foreach}
</div>
</div>
</div>
</fieldset>
$(function () {
// Check if user clicks on the checkbox
$('#' + id).click(function() {
if($('#' + id).is(":checked")){
$("#pagebox1").contents().appendTo("#pagebox2");
} else {
$("#pagebox2").contents().appendTo("#pagebox1");
}
});
});
【问题讨论】:
-
您可以使用
this关键字来引用点击处理程序中的元素:if ($(this).is(":checked"))...或更简单的:if (this.checked)... -
这对于 $('#' + id).click(function().. 是否相同?即 $(this).click(function() {...?
-
否,因为它没有所需的范围。