0

我正在使用 jQuery 对话框,如下所示:-

    <a href="#" id="faq-1"><li><span class="black">- I paid for a journey on credit card and at a later date I got further charges. Why?</span></li></a>

    <div id="faq-1a" class="faq-a" title="I paid for a journey on credit card and at a later date I got further charges. Why?">
        <p>When a booking is made via credit card we take the payment for the journey quoted. If for any reason the journey was amendments i.e.  Waiting time or an extra drop off, these charges are separately billed therefore shown as a separate transaction on your statement.</p>
    </div>

    <a href="#" id="faq-2"><li><span class="black">- How do I get a receipt for a journey I made using my credit card?</span></li></a>

    <div id="faq-2a" class="faq-a" title="How do I get a receipt for a journey I made using my credit card?">
        <p>If you are a registered user please use your online booking management via our website <a href="index.php">www.one2onecars.com</a>. you will have access to all your journeys with the option to print out receipts for each journey or as a summary statement. If you are not registered, you can email <a href="mailto:creditcardreceipts@one2onecars.com">creditcardreceipts@one2onecars.com</a> for your receipts.</p>
    </div>

查询

   $(function() {

        $('.faq-a').dialog({
          modal: true,
          resizable: false,
          draggable: false,
          width: '585',
          autoOpen: false,
          position: [370,455],
        });
    });

});

    $("#faq-1").bind('click', function(){

        $("#faq-1a").dialog('open')

    });

    $("#faq-2").bind('click', function(){

        $("#faq-2a").dialog('open')

    });

我需要为 10 个不同的对话框执行此操作,因此#faq-x范围从#faq-1#faq-10

我相信会有一种更简单的方法来写这个,这样我就不必重复了:

$("#faq-3").bind('click', function(){

    $("#faq-3a").dialog('open')

});

对于我创建的每个对话框,我只是不知道如何做到这一点,因此非常感谢任何帮助!

4

3 回答 3

0

Check if you can write the below for loop simply in jquery.

for (var i = 1; i <= 10; i ++) {
     $("#faq-" + i).bind("click", function() {
         $("#faq-" + i + "a").dialog("open")
     });
}
于 2013-03-13T13:10:13.890 回答
0

为什么不创建类,而不是唯一的 ID?

为您的#faq-1、#faq-2、........、#faq-10 分配所有相同的类,例如 faqClass

$(".faqClass").bind('click', function(){
    $("#" + $(this).attr('id') + "a").dialog('open');
});
于 2013-03-13T13:10:51.673 回答
0

一种方法是将您的 jquery 绑定添加到类并将其他数据属性添加到您的锚点:

在这里小提琴:http: //jsfiddle.net/qV578/1/

HTML:

<a href="#" data-dialog="one" class="dialog-link">Link</a>
<div id="one" class="dialog">Dialog fired by Link</div>

Javascript:

$('.dialog').dialog({
      modal: true,
      resizable: false,
      draggable: false,
      width: '585',
      autoOpen: false,
      position: [370,455]
    });

$('.dialog-link').bind('click',function(e) {
    e.preventDefault();
    var target_dialog = $(this).attr('data-dialog');
    $('#'+target_dialog).dialog('open');
});
于 2013-03-13T13:19:39.003 回答