[英]how to call a nested jquery function from html?
I am calling a addtext()
function from html onclick()
that is nested inside add()
function. 我正在从嵌套在
add()
函数内部的html onclick()
调用addtext()
add()
函数。 I want to call the second function. 我想调用第二个函数。 How can i approach this?
我该如何处理?
Here i have a link with add()
function that shows a textbox and an ADD
button with addtext()
. 在这里,我有一个与
add()
函数的链接,该链接显示了一个文本框和一个带有addtext()
的ADD
按钮。 The add()
function checks for text and if text is present, it generates a new text box. add()
函数检查文本,如果文本存在,它将生成一个新的文本框。 Now i want the add button to take that text and from the textbox and set it in replacement of the textbox. 现在,我希望添加按钮从文本框中获取该文本,并将其设置为替换文本框。 clicking the
ADD
button will take it to addtext()
which is inside the add()
function. 单击“
ADD
按钮会将其带到位于add()
函数内部的addtext()
。
Html code: HTML代码:
<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>
Jquery code: jQuery代码:
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()
{
}
wrapper.append('<textarea class="t-one"></textarea>');
wrapper.append('<button class ="btn btn-success
nbutton">Add</button>').appendTo('#cardarea').insertAfter('#cardtitle');;
//button.addClass("btn btn-success");
wrapper.appendTo("#cardarea").insertAfter('#cardtitle');
wrapper.addClass('t-one');
// var text =$('textarea:nth-last-child(2)').val().length;
//wrapper.addClass('nbutton');
}
You have to assign the nested function to a property like this addText.add = add;
您必须将嵌套函数分配给诸如
addText.add = add;
这样的属性addText.add = add;
then you can call that function in onClick
event. 那么您可以在
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>
EDIT: 编辑:
Updated the snippet as per your code 根据您的代码更新了代码段
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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.