我正在开发 jQuery 插件Tag-it!带有一个产品输入表单,用于为不同类型的产品(笔记本电脑、电视、小工具等)分配属性。
概念如下:添加新产品时,首先,用户从下拉列表中选择要添加的产品的产品类别,并触发 jQuery .change() 事件进行 ajax 调用以获取所有相关的属性到那个类别。例如,如果我添加一台电视,我希望我的 ajax 调用为英寸、面板类型、hdmi 填充 3 个输入,而如果我添加一台笔记本电脑,我希望这些输入是 cpu、ram、hdd、屏幕等。标记-它!使用单词列表(在我的例子中是属性)和用于选择单词集的输入字段。就我而言,对于每种类型的属性,我想填充一个单独的输入字段并将其分配/绑定到/应用 tagit 插件(对不起,我不知道如何解释它)。
Javascript:
<script src="../js/tag-it.js" type="text/javascript" charset="utf-8"></script>
<script>
$(function(){
// Sample1: var sampleTags1 = ["red", "green", "blue"];
// Sample2: var sampleTags2 = ["lcd", "plasma", "tft"];
var sampleTags1 = [<?=createTags('name', 'tags', 1)?>];
// createTags($name, $tags, $id) is a PHP function that returnss a list of tags for a given attribute
// Question 1: how do I place this here after a new input is added to the DOM?
$('#myTags').tagit();
//Question 2: for each input added to the DOM I need also to add this block in the javascript:
$('#allowSpacesTags1').tagit({itemName: 'item1', fieldName: 'tags1',
availableTags: sampleTags1, allowSpaces: true
});
$('#removeConfirmationTags').tagit({
availableTags: sampleTags,
removeConfirmation: true
});
});
$(document).ready(function() {
$('#cat_id').change(function(){
$.post('../includes/ajax.php', {
cat_id : $(this).find("option:selected").attr('value')}, function(data) {
$("#tagholder").html(data);
});
});
});
</script>
Ajax 为每个调用返回以下内容:
<ul id="allowSpacesTags'.$row['ctid'].'"></ul> // $row['ctid'] is the ID for that attribute
它表示用于输入标签/属性的输入字段。
在有任何误解之前,我不是在问如何在 PHP 中做到这一点。我的问题是关于我可以动态添加像 sampleTags1 这样的 var 并且还为通过 ajax 添加到 DOM 的每个新输入调用 tagit() 的方式。如果我的问题不够清楚,我会尽力提供任何必要的信息。请查看代码注释中的问题。谢谢!