2012-04-24 78 views
0

我知道这个话题之前被问过,但他们不是关于jqueryui的。因此我无法确定他们是否会处理我的代码。我有一个从不同组件调用的弹出窗口。但是我必须为每个呼叫写一个点击功能。我想将其转换为可以称之为ca的函数。我的脚本是:将点击函数转换为调用函数

<script type="text/javascript"> 
     $(document).ready(function() { 
      $('a#popup').live('click', function (e) { 

       var page = $(this).attr("href") 

       var $dialog = $('<div id="silmeIframe"></div>') 
       .html('<iframe style="border: 0px; " src="' + page + '" width="500px" height="500px"></iframe>') 
       .dialog({ 
        autoOpen: false, 
        modal: true, 
        height: 'auto', 
        resizable: 'false', 
        width: 'auto', 
        title: "Silmeyi onaylıyor musunuz?", 
        close: function (event, ui) { 

         __doPostBack('<%= btnRefresh.ClientID %>', ''); 
        } 
       }); 
       $dialog.dialog('open'); 
       e.preventDefault(); 

      }); 

     }); 
    </script> 

现在,我想它像

<a onclick="NewFunctionName(parameter1,parameter2,,parameter3)">click<a/> 
+0

工作,我不明白什么是错与此一。你为什么要为每个人创建处理程序? jQuery可以将一个处理程序附加到多个元素。 – Joseph 2012-04-24 00:56:25

+0

@Joseph没有什么不对,他只是想改造它 – ajax333221 2012-04-24 00:59:12

+0

是的,我只想改造它。 – osmanraifgunes 2012-04-24 01:00:53

回答

1

single handler, multiple targets attachment

$(function() { 

    function handler(e,param1,param2...) { 
     var page = $(this).attr("href") 
     ... 
     $dialog.dialog('open'); 
     e.preventDefault(); 
    } 

    //write attachments 
    $('a#popup1').on('click',function(e){ 
     handler(e,param1,param2...); 
    }); 
    $('a#popup2').on('click',function(e){ 
     handler(e,param1,param2...); 
    }); 
    $('a#popup3').on('click',function(e){ 
     handler(e,param1,param2...); 
    }); 
}); 

or single handler, multiple targets in one query

$(function() { 
    $('a#popup1, a#popup2, a#popup3').on('click',function (e) { 
     var page = $(this).attr("href") 
     ... 
     $dialog.dialog('open'); 
     e.preventDefault(); 
    }); 
}); 
+0

感谢您的回答。我试过了。但我不知道如何在第一种方法中使用处理程序。我必须像你一样写作吗?或者在标签里面? – osmanraifgunes 2012-04-24 01:25:40

+0

@ user1352563就是这样。当你附加时('#popup#'部分),你的目标是''。你应该避免在元素中嵌入JavaScript。 – Joseph 2012-04-24 01:27:43

+0

我已经写过,但它不起作用。它会在新页面上打开标记href链接。但它应该以弹出的方式打开。也就是说,我认为它没有看到弹出的ID。 – osmanraifgunes 2012-04-24 01:35:59