在幻灯片放映中使用 .delegate 函数

发布于 2024-12-09 07:18:00 字数 867 浏览 0 评论 0原文

我有一个为我的页面运行幻灯片的脚本。我正在尝试使用 .delegate() 插入幻灯片中显示的一组新图像(包括其缩略图)。我使用 .load() 函数加载外部

来替换活动页面中的一些 HTML。我还有带有 ID 的按钮(#kick1#kwick2 等),用于确定加载哪组幻灯片。

 jQuery("#kwick2").click(function () {
     jQuery("body").delegate('#slideshow', 'click', function() {
         jQuery('#slideshow').load('/design.html #design');      
     )};
 )};

很确定语法完全错误。有人可以帮助我吗?

#slideshow div 是我创建的,用于直接包含其他一些 div 受幻灯片脚本的影响。 div ID #slideshow 内为

;

当您单击 KWICK 按钮时,这些内容将被直接替换,它们几乎都是不言自明的,图像拇指具有图像链接和带有图像链接的无序列表。

I have a script that runs a slideshow for my page. I'm trying to use .delegate() to insert a new set of images shown within the slideshow including its thumbnails. I'm using a .load() function to load an external <div> to replace some HTML within the active page. I also have buttons with IDs, (#kick1, #kwick2, etc.) that determine what set of slide show is loaded.

 jQuery("#kwick2").click(function () {
     jQuery("body").delegate('#slideshow', 'click', function() {
         jQuery('#slideshow').load('/design.html #design');      
     )};
 )};

Pretty sure the syntax is all wrong. Can someone help me?

The #slideshow div is something I created to contain some other divs directly
effected by the slideshow script. Within div ID #slideshow are

<div class="main_image">, <div class="desc"> and <div class="image_thumb">.

These are being replaced directly when you click a KWICK button, they are all pretty much self explanatory, image thumb has and unordered list with image links.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

§普罗旺斯的薰衣草 2024-12-16 07:18:00

您不应在每次单击按钮时重新委托。你做错了。

相反,你应该拥有类似:

var foobar = (function () {

   var func , mod1 , mod2;
   mod1 = function () {
      /* do something in state 1 */
   };
   mod2 = function () {
     /* do something in state 2 */
   };

   return {
      state: function (e) {
         switch (this.id){
            case 'kwick1':
               func = mod1;
               break;
            case 'kwick2':
               func = mod2;
               break;
         }
      },
      callback: function (e) {
         func.call();
      }
   }
})();

jQuery("#kwick1").click( foobar.state ); // and you really should delegate this
jQuery("#kwick2").click( foobar.state );
jQuery("body").delegate('#slideshow','click', foobar.callback);

或类似的东西..

并且不,我没有测试此代码。它是为了解释这个概念而写的,而不是用来填鸭式的。

You should not re-deligate every time you click the button. You are doing the wrong.

Instead what you should have is something like:

var foobar = (function () {

   var func , mod1 , mod2;
   mod1 = function () {
      /* do something in state 1 */
   };
   mod2 = function () {
     /* do something in state 2 */
   };

   return {
      state: function (e) {
         switch (this.id){
            case 'kwick1':
               func = mod1;
               break;
            case 'kwick2':
               func = mod2;
               break;
         }
      },
      callback: function (e) {
         func.call();
      }
   }
})();

jQuery("#kwick1").click( foobar.state ); // and you really should delegate this
jQuery("#kwick2").click( foobar.state );
jQuery("body").delegate('#slideshow','click', foobar.callback);

Or something similar to this ..

And no , i did not test this code. It is written to explain the concept, not to spoon-feed people.

阿楠 2024-12-16 07:18:00

不确定我是否很好地理解了这个问题,无论如何,你必须指定你要委托的事件

 jQuery("#kwick2").click(function () {
 jQuery("body").delegate('#slideshow',"click", function(){
    jQuery('#slideshow').load('/design.html #design');      
    )};
 )};

委托

not sure if i have understood the question well, anyway you have to specify what event you are delegating

 jQuery("#kwick2").click(function () {
 jQuery("body").delegate('#slideshow',"click", function(){
    jQuery('#slideshow').load('/design.html #design');      
    )};
 )};

delegate

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文