2009-12-29 81 views
1

考慮這個代碼示例:如何在「屬性事件」中獲得onclick「屬性事件」返回值?

<a href="some url" onclick="confirm('ok to proceed ?')">bla</a>` 

<script type="text/javascript"> 
    $(document).ready(function() { 
       $("a").live("click", function (event) { 
        // In that function, I want to get 
        // the "confirm" return value     
       }); 
</script> 

它可以在不修改DOM得到這個返回值?

感謝.............

+0

由於下面的答案,但我的問題恰恰是屬性事件(的onclick)和物業組合事件(onClick),而不修改明確的onclick屬性: 查看我的jquery插件:http://garage.pimentech.net/scripts_doc_jquery_jframe/ >>>>>如果onclick屬性返回false,我想停止事件傳播。 – fredz 2009-12-29 20:37:03

回答

1

,你需要明確加上 「回報」,像這樣:

onclick="return confirm('ok to proceed?')" 

編輯:我最初的回答是BS ,這是我最後的工作。

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <script type="text/javascript" src="jquery-1.3.2.js"></script> 
    <script type="text/javascript"> 
$(document).ready(function(){ 
    $("a").click(function() { 
     var stuff = confirm('ok?'); 
     if (stuff) { 
     alert('was ok, stuff=' + stuff); 
     } 
    else { 
     alert('was not ok, stuff=' + stuff); 
     } 
    }); 
}); 
    </script> 
    </head> 
    <body> 
    <a href="http://jquery.com/">jQuery</a> 
    </body> 
</html> 
+0

嗯,也許這就是它。返回值存儲在哪裏?傳遞給匿名函數的jQuery'event'參數? – 2009-12-29 18:32:21

+0

如果用戶單擊取消,iirc事件將被取消,所以我不確定JQuery代碼是否會執行。 – 2009-12-29 18:40:18

2
<a href="some url" onclick="var myVar = confirm('ok to proceed ?')">bla</a> 

如果我沒有記錯,這應該工作。然後,您可以在您的jQuery塊中訪問myVar,就像您可以訪問任何其他Javascript變量一樣。

2

不,該值不會存儲在任何地方供您訪問。獲得該值的唯一方法是將其移動到一個jQuery處理這樣的單擊事件:

$(document).ready(function() { 
    // The removeAttr removes the original "onclick" attribute 
    $("a").removeAttr('onclick').live("click", function (event) { 
     var ret = confirm('ok to proceed ?'); 
     // Do what you want here because `ret` has the return 
     // value from the `confirm` call. 
    }); 
}); 
-1

getValueConfirm`

var isConfirm = false; function confirmDialog(){ isconfirm = confirm('ok to proceed ?'); } $(document).ready(function() { $("a").live("click", function (event) { alert(isconfirm);// your value that you want get it }); });