$.fn - this и отделна функция

IzKuFeLiQqQqQ

Registered
Здравейте имам нещо подобно
HTML:
<script>
$.fn.one = function() {
   $('body').append("<div id="fortwo" onclick='$("+this+").two()'>click and here</div>");
}
$.fn.two = function() {
    $(this).append('...two is done');
}


$('#forone').click(function() {
   $(this).one();
});
</script>
<div id="forone">click</div>

но при one() дива който излиза изглежда така
HTML:
<div id="fortwo" onclick='$([object Object]).two()'>click and here</div>
и следователно за two() ми излиза грешката Uncaught SyntaxError: Unexpected identifier

Та въпроса ми е... как да задам two() да ползва същия this както в one()??? Т.е '...two is done' да се появи в #forone
 
Здравей. Опитах се да пресъздам това което искаш, не съм сигурен дали е такъв резултата де. Та това което направих беше да кеширам $(this) и го изпозлвах при извикването на .two() която приема кеширания $(this). Обяснението ми може да е малко ..... но предвид късния час не мога повече :)

Ето и jsfiddle за преглед


HTML:
<head>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<div id="forone">click</div>


<script>
$.fn.one = function() {
	var $this = $(this) // тук кеширам
	$('body').append("<div id='fortwo'>click and here</div>");
        //използвам jquery за onclick защото този в html-а ме дразни
	$('body').on('click','#fortwo',function(){
		 $this.two();
	});
 
}
$.fn.two = function() {
    $(this).append('...two is done');
}


$('#forone').click(function() {
   $(this).one();
});
</script>
</body>
 

Back
Горе