首页 > 解决方案 > 将动态值传递给 jQuery 插件

问题描述

jQuery 插件正在寻找一些值来设置:

$('.toClone_example88888').metalClone({
    position:'after',
    btnClone    : '.btn_toClone_example88888'
});

问题是要克隆的项目的类名,并且相应的按钮将来自数据库,因此值需要是动态的。

我已经尝试过了,虽然它不起作用,但它也没有产生任何控制台错误。我错过了什么,或者这甚至可以做什么?

我发现了这个 SO question 并相信它具有相同的核心组件(将动态变量发送到 jquery),但应用这些相同的概念不适用于我的实现。

$('.cloneBtn').on('click', function(){
                var getDestinationOfWhereClonedCopyShouldGo = $(this).data("destinationclone");
    $('#' + getDestinationOfWhereClonedCopyShouldGo).metalClone({
        position:'after',
        btnClone    : '.cloneBtn'
    });
});

我也试过这个,但同样的,没有工作,但也没有错误消息:

var cloneThis = function(){
    $('.cloneBtn').on('click', function(){
        var getDestinationOfWhereClonedCopyShouldGo = $(this).data("destinationclone");
        putCloneHere(getDestinationOfWhereClonedCopyShouldGo);
    });
}
    var putCloneHere = function(element){
    $('#' + element).metalClone({
        position:'after',
        btnClone    : '.cloneBtn'
    });
}

根据要求的附加 HTML:

<div id="firstOne">
    <input type="text">
    <select id="m">
        <option value="">--Please Select</option>
        <option value="Hello">Hello</option>
    </select>
</div>
<div class="container_body">            
    <input type="button" class="cloneBtn" value="Create New Copy" data-destinationclone="firstOne">
</div>

<div id="secondOne">
    <input type="text">
    <select id="m">
        <option value="">--Please Select</option>
        <option value="Hello">Hello</option>
    </select>
</div>
<div class="container_body">            
    <input type="button" class="cloneBtn" value="Create New Copy" data-destinationclone="secondOne">
</div>

这是一个jsfiddle(其中包括插件代码)。

标签: javascriptjqueryjquery-plugins

解决方案


推荐阅读