【问题标题】:Javascript Variable Function (Twig)Javascript 变量函数 (Twig)
【发布时间】:2016-11-10 17:10:44
【问题描述】:

我的 default.htm(设置唯一 ID)

{ % set uid = __SELF__.id % }

<div id="tab" name="{{uid}}" 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" name="{{uid}}" class="tab-expand tab-btn"></div>
        <div id="tab-close" name="{{uid}}" class="tab-close tab-btn" onclick="tabClose()"></div>
    </div>
</div>

JS

function tabClose(){      
var uid = document.getElementsByName("name");
    $(this).click(function() { 
        $("#tab").addClass("hidden");  //<--- how to put the uid in?
    });
}

JS

var tab_{{uid}} = function tabClose(){
                       $("#tab-close").click(function() {        
                           $("#tab").addClass("hidden");
                       });
                  }

谁能告诉我如何在 JavaScript 中使用 twig?

如何为每个组件设置唯一的 id,这样当我复制组件时它就不会出现任何错误?

【问题讨论】:

    标签: javascript jquery twig components uniqueidentifier


    【解决方案1】:

    您不能在客户端程序 (javascript) 中调用服务器变量 (twig)。

    您必须在 html 代码中编写 twig 变量,以便 javascript 捕获它。

    例如tout可以放在data属性中。

    <div id="tab-close" data-uniqid={{uid}} >
    

    在你的 js 中

    var uid = $("#tab-close").data('uniqid');
    

    或与您的更新

    var uid = $("#tab").attr('name');
    

    更新

    对于你的问题,我认为你的 js 中不需要 Twig 变量,这个变量在这里是为了在你的 html 代码中有 uniq Id。

    所以,试试这个:

    <div id="tab{{__SELF__.id}}" class="my-tab draggable-tab ui-draggable">
        <img id="tab-avatar{{__SELF__.id}}" alt="Virtual agent avatar" style="height:50px; width:50px" src="{{__SELF__.avatarImage}}">
        <div id="tab-minimize{{__SELF__.id}}">
            <div id="tab-label{{__SELF__.id}}"></div>
            <div id="tab-expand{{__SELF__.id}}" class="tab-expand tab-btn"></div>
            <div id="tab-close{{__SELF__.id}}" class="tab-close tab-btn" onclick="tabClose()"></div>
    </div>
    

    在你的 js 中

     $(".tab-close").click(function() {        
         $(this).closest(".my-tab").addClass("hidden");
     });
    

    【讨论】:

    • ohhh 我如何在我的 javascript 函数中使用 uid 变量?现在我有两个选项卡(重复的选项卡),它们都有相同的类名、id 等。唯一的区别是它们有自己的唯一名称(
      ) .所以如果我把 [ var uid = $("#tab").attr('name'); ] 当我按下特定标签的关闭按钮时如何关闭标签?意思是我想单击标签 1 关闭按钮关闭标签 1,然后单击标签 2 关闭按钮关闭标签 2。
    • 不客气。重要的是您了解服务器变量和客户端变量之间的区别。 :)
    • 顺便说一句,我可以通过这种方式更改它的可见性( $(this).closest(".cb-window").css("visibility", "visible"); )/( $(this ).closest(".cb-window").css("visibility", "hidden")?
    • 嗯,如果我有不止一门课,我是否必须列出所有课程才能使用 .css("visiblility","hidden")?
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签