如何将jQuery事件附加到对象的方法?

时间:2015-06-25 16:31:01

标签: javascript jquery object

我使用属性和方法定义了一个对象。但我无法找到如何将jQuery函数附加到方法。我想要的是:当我点击对象#myTarget更改其html文本时。

我写了这个:



function blockTest(word){
	this.word = ""+genRandInt(0, 25);	
	this.applyNewWord = function(){
		$(document).ready(function(){
			$("#myTarget").click(function(){
				$("#myTarget").html(this.word);		
			});
		});
	};
}




实际上,我试图

2 个答案:

答案 0 :(得分:1)

根据您提供的代码完成您想要的内容并不是最佳选择。我首先创建Object而不是使用函数。在该对象中插入属性并分别处理DOM事件:



(function($) {
   var obj = {
     word: "Example Word",
     applyNewWord: function() {
       return this.word;
     }
   }
   
   $(function() {
     $("#myTarget").on("click", function() {
       $(this).text(obj.applyNewWord())
     });
   });
}(jQuery));

div {
  border: 1px solid black;
  cursor: pointer;
  padding: 5px;
}

<div id="myTarget">Dummy Text</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

function blockTest(word){
    var self = this;
    self.word = ""+genRandInt(0, 25);   
    self.applyNewWord = function(){

            $("#myTarget").click(function(){
                $(this).html(self.word);        
            });

    };
}

复制此内容并且不要将document.ready保留在函数