【问题标题】:Octobercms Component Unique id (Twig & Javascript)Octobercms 组件唯一 ID(Twig 和 Javascript)
【发布时间】:2016-07-01 07:12:11
【问题描述】:

我需要有唯一的 ID 来复制组件 我知道如何在我的组件的 default.htm 中设置唯一 ID

{% set uid = '{{__SELF__.id}}' %}

但我不知道如何将它与我的 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}}]();

有人可以告诉我怎么做吗?

【问题讨论】:

    标签: javascript jquery function twig octobercms


    【解决方案1】:

    $("#x") 返回一个以x 为 id 的 jQuery 对象。
    $("#x").data("y") 返回 jQuery Objet 中标签 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"
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2011-06-23
      相关资源
      最近更新 更多