Octobercms 组件唯一 ID(Twig & Javascript)
Octobercms Component Unique id (Twig & Javascript)
我需要有唯一的 ID 来复制组件
我知道如何在 default.htm 中为我的组件
设置唯一 ID
{% set uid = '{{__SELF__.id}}' %}
但我不知道如何 link 它与我的 JavaScript...
试了好几种方法还是不行
1) default.htm
<div id="tab" data-id="{{__SELF__.id}}" class="draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
这是我的js
$(function() {
$( "#tab" ).data('id').draggable({
axis: "y",
containment: "window"
});
});
出现错误 "Uncaught TypeError: $(...).data(...).draggable is not a function"
2) default.htm
<div id="tab{{__SELF__.id}}" class="draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
这是我的js
$(function() {
$( "#tab{{__SELF__.id}}" ).data('id').draggable({
axis: "y",
containment: "window"
});
});
3) default.htm
{% set uid = '{{__SELF__.id}}' %}
<div id="tab" class="draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
这是我的js
var tab_{{uid}} = $(function() {
$( "#tab" ).data('id').draggable({
axis: "y",
containment: "window"
});
});
window[tab_{{uid}}]();
有人可以告诉我怎么做吗?
$("#x")
return 具有 x
作为 ID 的 jQuery 对象。
$("#x").data("y")
return jQuery 对象中标签 data-y
的值,其 ID 为 x
。
draggable()
无法应用于值。
所以尝试这样的事情:
<div id="tab{{__SELF__.id}}" class="my-tab draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
和
$(function() {
$(".my-tab").draggable({
axis: "y",
containment: "window"
});
});
您可以像这样使用 each()
函数:
$(".my-tab").each(function(){
var myId = $(this).attr('id');
// Do Something with your unique Id
$(this).draggable({
axis: "y",
containment: "window"
});
});
我需要有唯一的 ID 来复制组件 我知道如何在 default.htm 中为我的组件
设置唯一 ID{% set uid = '{{__SELF__.id}}' %}
但我不知道如何 link 它与我的 JavaScript... 试了好几种方法还是不行
1) default.htm
<div id="tab" data-id="{{__SELF__.id}}" class="draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
这是我的js
$(function() {
$( "#tab" ).data('id').draggable({
axis: "y",
containment: "window"
});
});
出现错误 "Uncaught TypeError: $(...).data(...).draggable is not a function"
2) default.htm
<div id="tab{{__SELF__.id}}" class="draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
这是我的js
$(function() {
$( "#tab{{__SELF__.id}}" ).data('id').draggable({
axis: "y",
containment: "window"
});
});
3) default.htm
{% set uid = '{{__SELF__.id}}' %}
<div id="tab" class="draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
这是我的js
var tab_{{uid}} = $(function() {
$( "#tab" ).data('id').draggable({
axis: "y",
containment: "window"
});
});
window[tab_{{uid}}]();
有人可以告诉我怎么做吗?
$("#x")
return 具有 x
作为 ID 的 jQuery 对象。
$("#x").data("y")
return jQuery 对象中标签 data-y
的值,其 ID 为 x
。
draggable()
无法应用于值。
所以尝试这样的事情:
<div id="tab{{__SELF__.id}}" class="my-tab draggable-tab ui-draggable">
<img id="tab-avatar" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
<div id="tab-minimize">
<div id="tab-label"></div>
<div id="tab-expand" class="tab-btn"></div>
<div id="tab-close" class="tab-btn"></div>
</div>
</div>
和
$(function() {
$(".my-tab").draggable({
axis: "y",
containment: "window"
});
});
您可以像这样使用 each()
函数:
$(".my-tab").each(function(){
var myId = $(this).attr('id');
// Do Something with your unique Id
$(this).draggable({
axis: "y",
containment: "window"
});
});