我尝试了谷歌搜索,但它只提出了jQuery noconflict选项。
我会使用这个,但我的网站非常jQuery,它需要相当白,以及我添加的原型代码可能是暂时的,只有几行。
如果没有原型没有冲突选项我如何转换下面的代码,我的javascript代码是有限的?
// JavaScript Document
// calculate price based on quantity
function changeQty(change){
var currentQty = parseInt($F('quant')) // Where quant is the id of your quantity input field. Gets value of currentQty field
switch (change) {
case 'add':
currentQty += 1
$('quant').value = currentQty
calculate()
break
case 'subtract':
if (currentQty > 1) { // only subtract if qty is greater than zero
currentQty -= 1
$('quant').value = currentQty
calculate()
}
break
case 'field':
if (currentQty > 0) {
window.setTimeout('calculate()', 500)
}
break
}
}
function calculate(){
var currentQty = parseInt($F('quant')) // Where quant is the id of your quantity input field. Gets value of currentQty field
var jsnormalprice = $F('jsnormalprice') // Where jsnormalprice is the id of your hidden base price field. Gets value of base_price field
var jsspecialprice = $F('jsspecialprice') // Where is the id of your hidden base price field. Gets value of base_price field
if (currentQty > 0) { // Don't want price to display if zero if customer zeros out quantity
var new_jsnormalprice = jsnormalprice * currentQty // Calculate the price.
var new_jsnormalprice = new_jsnormalprice.toFixed(2) // Only allow 2 decimals. I'll let you add rounding features up or down.
var new_jsspecialprice = jsspecialprice * currentQty // Calculate the price.
var new_jsspecialprice = new_jsspecialprice.toFixed(2) // Only allow 2 decimals. I'll let you add rounding features up or down.
} else { // set price back to original price
new_jsnormalprice = jsnormalprice
new_jsspecialprice = jsspecialprice
}
$('jsnormalpriceshow').update(new_jsnormalprice) // Where jsnormalpriceshow is the id of your span for the echoed product price
$('jsspecialpriceshow').update(new_jsspecialprice) // Where jsspecialpriceshow is the id of your span for the echoed product price
}
答案 0 :(得分:3)
Prototype没有无冲突模式..
我已经转换了你的代码,但我可能错过了一两个......
通常,$('elemID')
=> $('#elemID')
和$F('elemID')
=> $('#elemID').val()
就是我所做的......
// JavaScript Document
// calculate price based on quantity
function changeQty(change){
var currentQty = parseInt($('#quant').val()) // Where quant is the id of your quantity input field. Gets value of currentQty field
switch (change) {
case 'add':
currentQty += 1
$('#quant').val(currentQty)
calculate()
break
case 'subtract':
if (currentQty > 1) { // only subtract if qty is greater than zero
currentQty -= 1
$('#quant').val(currentQty)
calculate()
}
break
case 'field':
if (currentQty > 0) {
window.setTimeout('calculate()', 500)
}
break
}
}
function calculate(){
var currentQty = parseInt($('#quant').val()) // Where quant is the id of your quantity input field. Gets value of currentQty field
var jsnormalprice = $('#jsnormalprice').val() // Where jsnormalprice is the id of your hidden base price field. Gets value of base_price field
var jsspecialprice = $('#jsspecialprice').val() // Where is the id of your hidden base price field. Gets value of base_price field
if (currentQty > 0) { // Don't want price to display if zero if customer zeros out quantity
var new_jsnormalprice = jsnormalprice * currentQty // Calculate the price.
var new_jsnormalprice = new_jsnormalprice.toFixed(2) // Only allow 2 decimals. I'll let you add rounding features up or down.
var new_jsspecialprice = jsspecialprice * currentQty // Calculate the price.
var new_jsspecialprice = new_jsspecialprice.toFixed(2) // Only allow 2 decimals. I'll let you add rounding features up or down.
} else { // set price back to original price
new_jsnormalprice = jsnormalprice
new_jsspecialprice = jsspecialprice
}
$('#jsnormalpriceshow').html(new_jsnormalprice) // Where jsnormalpriceshow is the id of your span for the echoed product price
$('#jsspecialpriceshow').html(new_jsspecialprice) // Where jsspecialpriceshow is the id of your span for the echoed product price
}
答案 1 :(得分:1)
Prototype没有无冲突模式。
答案 2 :(得分:1)
不幸的是,原型没有冲突模式。
幸运的是,您不需要使用Prototype来选择DOM中的元素。 jQuery非常适用于此。
而不是
$F('quant')
$('quant').value = currentQty
$F('jsnormalprice')
$('jsnormalpriceshow').update(new_jsnormalprice)
您可以使用jQuery等价物:
$("#quant").val()
$("#quant").val(currentQty)
$("#jsnormalprice").val()
$("#jsnormalpriceshow").text(new_jsnormalprice)
而且,请不要评估字符串中的代码。变化
window.setTimeout('calculate()', 500)
采用更自然的方式:
window.setTimeout(calculate, 500)