Модалният диалогов прозорец на Jquery се показва само при първо щракване

Следният код работи добре само за първото щракване. При всяко последващо щракване обаче нищо не се случва.

<input type="submit" name="add" value="Add it" onClick="javascript:Add(); return false;">

function Add()
{
   $(function(){
    var dialogOpts = {
        width: 880,
        height: 270,
        minWidth: 880,
        minHeight: 270,
        maxWidth: 890,
        maxHeight: 300
    };
    $("#add").dialog(dialogOpts);
    });
 }

Ако премахна return false от:

<input type="submit" name="add" value="Add it" onClick="javascript:Add(); return false;">

Разбирам, че работи за Firefox, но в IE8 прозорецът се показва за една или две секунди и след това изчезва (кешът е изчистен и всичко).

Изглежда имам много примери в тази мрежа за този проблем, но се страхувам, че съм твърде нов в jquery, за да ги приложа :(

Благодаря много


person ADM    schedule 10.07.2012    source източник
comment
Ако използвате атрибут onclick, не е необходимо да поставяте javascript: , тъй като той вече се интерпретира като Javascript.   -  person Anthony Grist    schedule 10.07.2012
comment
@AnthonyGrist, да, дава предположение, че се извиква някакъв javascript.   -  person Shiv Kumar Ganesh    schedule 10.07.2012
comment
Възможен дубликат: stackoverflow.com/questions/1701942 / - вижте тази публикация в блога: blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog   -  person Ashley Strout    schedule 10.07.2012
comment
@Shiv onclick съдържанието вече Е интерпретирано като javascript, така че няма нужда от javascript   -  person Christoph    schedule 10.07.2012
comment
@Christoph Да, това имах предвид :)   -  person Shiv Kumar Ganesh    schedule 10.07.2012


Отговори (2)


Напишете това, за да създадете своя диалогов прозорец:

$(function(){

    $diag = $("#add");
    var dialogOpts = {
        width: 880,
        height: 270,
        minWidth: 880,
        minHeight: 270,
        maxWidth: 890,
        maxHeight: 300,
        autoOpen: false
    };
    $diag.dialog(dialogOpts); // This instantiates the dialog once.
    //And then add this eventhandler:
    $("input[name='add']").click(function(){
       $diag.dialog('open');
    });
});

и премахнете всички тези вградени onclick неща - избягвайте го навсякъде, където можете...

person Christoph    schedule 10.07.2012
comment
$diag.dialog не е функция, сочеща към $diag.dialog(dialogOpts); - person ADM; 10.07.2012
comment
@user523129 какво се опитваш да кажеш? Не разбирам... $diag var остава в този обхват същият, защо да не работи? - person Christoph; 10.07.2012
comment
че получавам тази грешка в конзолата на Firebug: $diag.dialog не е функция и не се отваря модално. - person ADM; 10.07.2012
comment
@user523129 добре, поправих си правописната грешка;) Опитайте отново. - person Christoph; 10.07.2012
comment
$(input[name='add']).on не е функция - person ADM; 10.07.2012
comment
тогава имате стара версия на jquery. Ще променя кода си. - person Christoph; 10.07.2012
comment
сега няма грешки, но няма модални показвания :( Наистина оценявам усилията ви, благодаря! - person ADM; 10.07.2012
comment
jquery-ui-1.7.1.custom.min.js е моята версия - person ADM; 10.07.2012

Искате да премахнете част от кода си :) "javascript:" не е необходим

<input type="submit" name="add" value="Add it" onClick="Add();">

и на дом готова част не е необходима

function Add()
{
    var dialogOpts = {
        width: 880,
        height: 270,
        minWidth: 880,
        minHeight: 270,
        maxWidth: 890,
        maxHeight: 300
    };
    $("#add").dialog(dialogOpts);
 }
person algiecas    schedule 10.07.2012
comment
благодаря, но все пак същото като когато премахна return false. Работи за Firefox, но когато е в IE8, модалът изчезва след секунда или две :( - person ADM; 10.07.2012