如何从html调用嵌套的jquery函数?

时间:2018-01-05 06:07:39

标签: javascript jquery html

我正在df2 <- df %>% mutate_all(funs(as.character(.))) 调用嵌套在addtext()函数内的html onclick()函数。我想调用第二个函数。我怎么能接近这个?

此处我有add()功能的链接,其中显示了一个文本框和add()按钮ADDaddtext()函数检查文本,如果文本存在,则生成新的文本框。 现在我希望添加按钮从文本框中取出该文本并将其设置为替换文本框。 点击add()按钮会将其转到ADD功能内的addtext()

Html代码:

add()

Jquery代码:

     <a id = "newcard" href="#" onclick="add()" >
            <b style ="color: #444444">Add Card...</b>
     </a>

     <div>
          <span id = "show-ta"><textarea id="txtarea" style =" 
      display:none"></textarea><span>
          <span id = "newbutton"><button id = "firstbutton" class ="btn btn-
      success nbutton"onclick="addtext()" style ="display:none">Add</button>
          </span>
     </div>

1 个答案:

答案 0 :(得分:2)

您必须将嵌套函数分配给此addText.add = add;之类的属性,然后您可以在onClick事件中调用该函数。

function addText()
    {
        // irrelevant code here
        function add(arg){
            console.log( arg );
        }
    
        addText.add = add;
    }
    addText();
<button onclick="addText.add('Nested function')">Click me</button>

修改

根据您的代码更新了代码段

function add() {
  var newTextBoxDiv = $(document.createElement('textarea'));
  if ($('#txtarea').css('display') == 'none') {
    $('#txtarea').css('display', 'block');
  }
  if ($('#firstbutton').css('display') == 'none') {
    $('#firstbutton').css('display', 'block');
  }
  var wrapper = $('#show-ta');
  var button = $(document.createElement('button'));

  if (wrapper.find('textarea').last().val().length) {
    var x = wrapper.find('textarea').last().val();

    function addtext() {
      alert('working');
    }
    add.addtext = addtext;
    wrapper.append('<textarea class="t-one"></textarea>');
    wrapper.append('<button class="btn btn-success nbutton ">Add</button>').appendTo('#cardarea').insertAfter('#cardtitle');;

    wrapper.appendTo("#cardarea").insertAfter('#cardtitle');
    wrapper.addClass('t-one');

  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a id="newcard" href="#" onclick="add()">
  <b style="color: #444444">Add Card...</b>
</a>
<div>
  <span id="show-ta">
  <textarea id="txtarea" style ="display:none">
  </textarea>
  </span>
  <span id="newbutton">
  <button id = "firstbutton" class ="btn btn-success nbutton" onclick="add.addtext()" style="display:none">Add
  </button>
</span>
</div>