2011-05-17 95 views
0

我很努力让自己的头脑在我自定义jQuery插件中创作(并附加到事件)的方式。jQuery事件绑定

我有一个插件的开始,在这个简单的例子....

http://jsfiddle.net/ETFairfax/mRAHF/9/

(function($) { 
    $.fn.myPlugIn = function(options) { 
     var defaults = { 
      'width': 200, 
      'url': 'www.someurl.com' 
     }; 
     // If options exist, lets merge them with our default settings 
     var options = $.extend({}, defaults, options); 

     function somePrivateFunction() { 
      return options.url; 
     } 

     return this.each(function() { 
      $(this).text(somePrivateFunction()); 
      $(this).width(options.width); 
     }); 
    }; 
})(jQuery); 

$(document).ready(function() { 

    $('#testDiv1').myPlugIn({ 
     'width': 150 
    }); 
    $('#testDiv2').myPlugIn({ 
     'url': 'www.google.com' 
    }); 
}); 

<div id="eventDriver1">Click here to update 1</div> 
<div id="eventDriver2">Click here to update 2</div> 
<div id="testDiv1" class="testClass"></div> 
<div id="testDiv2" class="testClass"></div> 

正如你可以看到我设置testDiv1和testDiv2,和他们的行为如我所料。

现在我想能够说eventDriver1应该刷新testDiv1,并为它指定什么文本shoudl进入它。我只是不知道从哪里开始!

我很欣赏那将在某个地方被记录,和/或已经问过,但我只是不知道什么流行语我需要搜索!任何帮助赞赏。

谢谢。

+1

绑定事件与'.bind完成()'或'.live()'或使用的一个快捷键(例如'.click()','.submit()','.load()'等)。我不确定你的问题是什么... – Chad 2011-05-17 19:01:02

+0

请在问题中包含你的代码。谢谢。 – user113716 2011-05-17 19:03:09

回答

1

如何:

Live Demo

$('#eventDriver1').click(function() { 
    $('#testDiv1').myPlugIn({'url': 'www.yahoo.com'}); 
}); 
$('#eventDriver2').click(function() { 
    $('#testDiv2').myPlugIn({'url': 'www.microsoft.com', 'width': 250}); 
}); 
jQuery中
+0

感谢您的例子,虽然它工作得很好,我很高兴使用该方法,如果它的方式来做到这一点,但我试图找出如何公开某种Update()方法插件,以及如何调用它。也许我对错综复杂的事情有错误的想法? – ETFairfax 2011-05-17 20:04:22

1

使用点击。

$('#eventDriver1').click(function(){/*do something*/}) 
+0

感谢您的回复,但它是/ *做的东西* /位,我很困惑。我试图找出如何在插件上公开某种Update()方法,以及如何调用它?那有意义吗? – ETFairfax 2011-05-17 20:06:19